湘潭网站建设多少钱,做网站彩票代理多少钱啊,深圳市住房和建设局门户网站,网站开发的问题有哪些streamlit是什么 streamlit是一个开源的python库#xff0c;它能够快速的帮助我们创建定制化的web应用#xff0c;而且还非常便于和他人分享#xff0c;特别是在机器学习和数据科学领域。整个过程不需要你了解任何前端的知识#xff0c;包括html、css、javascript等#x… streamlit是什么 streamlit是一个开源的python库它能够快速的帮助我们创建定制化的web应用而且还非常便于和他人分享特别是在机器学习和数据科学领域。整个过程不需要你了解任何前端的知识包括html、css、javascript等对非前端开发人员非常的友好。 streamlit安装 streamlit要求python版本大于等于3.6可以直接使用pip进行安装 pip install streamlit 安装成功后使用其内置的hello app测试执行命令 streamlit hello 服务启动后它会自动帮我们打开页面地址是 http://localhost:8501 streamlit 可以看到streamlit默认使用端口8501 除此之外streamlit官方还提供了一个稍复杂的应用它结合了yolov3的目标检测算法仓库地址https://github.com/streamlit/demo-self-driving感兴趣的可以去研究研究代码简短但功能完整 streamlit 那么针对我们自己写的源码文件该怎么运行呢其实也非常简单比如源码文件是app.py那么可以执行 streamlit run app.py 这里再说2个常用的命令 streamlit docs 查看文档streamlit cache clear 清缓存 streamlit常用组件 按钮 import streamlit as stbutton st.button(按钮) streamlit button 文本输入框 import streamlit as stst.text_input(请输入最喜欢的编程语言, keyname) streamlit text_input 文本显示 import streamlit as stst.write(Hello streamlit.) streamlit write streamlit完美支持markdown语法可以直接使用write方法来看示例 import streamlit as stst.write(# 一级标题## 二级标题### 三级标题**强调**这是引用. python . java . c/c . rust
) streamlit write markdown 除了write方法streamlit还提供了text方法同样可以显示文本信息 import streamlit as stst.text(Hello streamlit.) 标题 import streamlit as stst.title(title) streamlit title 除了titlestreamlit还提供了header和subheader import streamlit as stst.header(header)
st.subheader(subheader) streamlit header 滑动条 import streamlit as stnumber st.slider(Pick a number, 0, 100) streamlit slider 选择框 import streamlit as stflag st.checkbox(Yes) streamlit checkbox 单选按钮 import streamlit as stlanguages [python, c, rust, c]st.radio(Pick a language, languages) streamlit radio 下拉选择框 import streamlit as stst.selectbox(用过哪几种编程语言?, (python, c, java, rust)) streamlit selectbox 日期选择器 import streamlit as stdate st.date_input(Pick a date) streamlit date_input 颜色选择器 import streamlit as stcolor st.color_picker(Pick a color) streamlit color_picker 文件选择器 import streamlit as stfile st.file_uploader(Pick a file) streamlit file_uploader streamlit的其它功能 显示json import streamlit as stst.json({code: 0,data: {sex: female,age: 18,score: 100}
}) streamlit json 显示代码 from numpy.core.arrayprint import _leading_trailing
import streamlit as stcode def func():print(Hello streamlit.)st.code(code, languagepython) streamlit code 显示pandas中的dataframe from numpy.core.arrayprint import _leading_trailing
import streamlit as st
import pandas as pd
import numpy as npdf pd.DataFrame(np.random.randn(50, 5), columns(col %d % i for i in range(5)))
st.dataframe(df) streamlit pandas dataframe 最后一句中的st.dataframe(df)可以用st.write(df)来代替效果一样 显示表格 import streamlit as st
import pandas as pd
import numpy as npdf pd.DataFrame(np.random.randn(50, 5), columns(col %d % i for i in range(5)))
st.table(df) streamlit table 与上边的dataframe不同的是表格会将所有数据都显示出来而没有了滚动条 指标性数据显示 这里还需要安装另一个库streamlit-metrics执行安装命令pip install streamlit-metrics即可 import streamlit as st
from streamlit_metrics import metric_rowst.write(一周数据统计)
metric_row({关注人数: 100,点赞人数: 200,在看人数: 300,分享人数: 400}
) streamlit metric streamlit的会话状态和回调 会话状态session state 在浏览器中打开新的页面就创建了一个会话(session)。会话状态是页面rerun(并非类似F5的页面刷新)时数据交互的一种方式。 看个计数的示例 import streamlit as stst.title(Hello streamlit.)
counter 0increment st.button(Increment)
if increment:counter 1st.write(Count , counter) streamlit session state 可以看到只有第一次点击按钮时Count增加了1后面的点击counter都不会改变这显然跟我们的预期是不一样的。 我们修改下上面的代码 from typing import Counter
import streamlit as stst.title(Hello streamlit.)
if counter not in st.session_state:st.session_state.counter 0increment st.button(Increment)
if increment:st.session_state.counter 1st.write(Count , st.session_state.counter) streamlit session state 这样功能就正常了每点击一次按钮Count就加1 回调callbacks 回调(callbacks)是一个python函数它在输入组件更改时被调用比如按钮被点击、滑动条被拉拽等。 针对上边的示例使用callbacks修改一下 from typing import Counter
import streamlit as st# callbacks
def increment_counter():st.session_state.counter 1st.title(Callbacks)
if counter not in st.session_state:st.session_state.counter 0st.button(Increment, on_clickincrement_counter)
st.write(Count , st.session_state.counter) 代码执行的效果是一样的。这是无需传参的示例如果需要数据交互可以使用args或kwargs看下面的示例 import streamlit as stst.title(Callbacks with args)
if counter not in st.session_state:st.session_state.counter 0increment_value st.number_input(Enter a value, value0, step1)def increment_counter(increment_value):st.session_state.counter increment_valueincrement st.button(Increment, on_clickincrement_counter,args(increment_value, ))st.write(Count , st.session_state.counter) streamlit callbacks args 下面看看kwargs的用法它接收的是命名参数 import streamlit as stst.title(Callbacks with kwargs)
if counter not in st.session_state:st.session_state.counter 0def increment_counter(increment_value0):st.session_state.counter increment_valuedef decrement_counter(decrement_value0):st.session_state.counter - decrement_valuest.button(Increment, on_clickincrement_counter,kwargsdict(increment_value5))st.button(Decrement, on_clickdecrement_counter,kwargsdict(decrement_value1))st.write(Count , st.session_state.counter) callbacks kwargs 点击Increment按钮Count就加5点击Decrement按钮Count就减1 会话状态的注意事项 关于会话状态有两点需要注意分别是 只要页面打开并连接到streamlit服务器会话状态就会一直存在。一旦关闭选项卡会话状态中存储的所有内容都会丢失会话状态不会持久化。如果streamlit服务器崩溃那么存储在会话状态中的所有内容都会被删除