我可以在 streamlit 网络应用程序中显示自定义 javascript 吗
can I display custom javascript in streamlit web app
我正在使用 python 3.7 中的 Streamlit 库开发停车数据应用程序,我想使用自定义 JavaScript 显示停车位的可用性以进行可视化。
是否可以在 streamlit 网络应用程序中显示 HTML/javascript 元素
深入挖掘 Google 我发现:
您可以使用
添加HTML
import streamlit as st
st.markdown(html_string, unsafe_allow_html=True)
但这不能添加JavaScript。
论坛:How to render already prepared html code with Streamlit?
您可以使用
添加HTML和JavaScript
import streamlit.components.v1 as components
components.html(html_string)
但这会把它放在 <iframe>
最小工作示例
import streamlit as st
import streamlit.components.v1 as components
html_string = '''
<h1>HTML string in RED</h1>
<script language="javascript">
document.querySelector("h1").style.color = "red";
console.log("Streamlit runs JavaScript");
alert("Streamlit runs JavaScript");
</script>
'''
components.html(html_string) # JavaScript works
st.markdown(html_string, unsafe_allow_html=True) # JavaScript doesn't work
要直接将 HTML 和 JavaScript 放在一起,您需要构建 Component
但似乎更复杂的方法可能需要 TypeScript
.
中的代码
查看文档中的视频:Create a Streamlit Component
我正在使用 python 3.7 中的 Streamlit 库开发停车数据应用程序,我想使用自定义 JavaScript 显示停车位的可用性以进行可视化。 是否可以在 streamlit 网络应用程序中显示 HTML/javascript 元素
深入挖掘 Google 我发现:
您可以使用
添加HTMLimport streamlit as st
st.markdown(html_string, unsafe_allow_html=True)
但这不能添加JavaScript。
论坛:How to render already prepared html code with Streamlit?
您可以使用
添加HTML和JavaScriptimport streamlit.components.v1 as components
components.html(html_string)
但这会把它放在 <iframe>
最小工作示例
import streamlit as st
import streamlit.components.v1 as components
html_string = '''
<h1>HTML string in RED</h1>
<script language="javascript">
document.querySelector("h1").style.color = "red";
console.log("Streamlit runs JavaScript");
alert("Streamlit runs JavaScript");
</script>
'''
components.html(html_string) # JavaScript works
st.markdown(html_string, unsafe_allow_html=True) # JavaScript doesn't work
要直接将 HTML 和 JavaScript 放在一起,您需要构建 Component
但似乎更复杂的方法可能需要 TypeScript
.
查看文档中的视频:Create a Streamlit Component