当前位置: 首页 > news >正文

网站托管 建设方案装饰设计软件

网站托管 建设方案,装饰设计软件,永嘉网站制作公司,签合网站是哪个streamlit是什么 streamlit是一个开源的python库,它能够快速的帮助我们创建定制化的web应用,而且还非常便于和他人分享,特别是在机器学习和数据科学领域。整个过程不需要你了解任何前端的知识,包括html、css、javascript等&#x…

streamlit是什么

streamlit是一个开源的python库,它能够快速的帮助我们创建定制化的web应用,而且还非常便于和他人分享,特别是在机器学习和数据科学领域。整个过程不需要你了解任何前端的知识,包括htmlcssjavascript等,对非前端开发人员非常的友好。

streamlit安装

streamlit要求python版本大于等于3.6,可以直接使用pip进行安装

pip install streamlit

安装成功后,使用其内置的hello app测试,执行命令

streamlit hello

服务启动后,它会自动帮我们打开页面,地址是 http://localhost:8501

63b66e7c5b44f6a1487949a616dc7fbd.png

streamlit

可以看到,streamlit默认使用端口8501

除此之外,streamlit官方还提供了一个稍复杂的应用,它结合了yolov3的目标检测算法,仓库地址:https://github.com/streamlit/demo-self-driving,感兴趣的可以去研究研究,代码简短,但功能完整

547e4ae0e2adba691ca12d070ae6f74d.gif

streamlit

那么,针对我们自己写的源码文件,该怎么运行呢?其实也非常简单,比如源码文件是app.py,那么可以执行

streamlit run app.py

这里再说2个常用的命令

  • streamlit docs 查看文档

  • streamlit cache clear 清缓存

streamlit常用组件

按钮

import streamlit as stbutton = st.button('按钮')

affcc56974073b81fa9a4d6596be8d78.png

streamlit button

文本输入框

import streamlit as stst.text_input('请输入最喜欢的编程语言', key="name")

c24b5cd21799a8e586786e885f1dc7ed.png

streamlit text_input

文本显示

import streamlit as stst.write('Hello streamlit.')

f6cf937597a9cc2270cc2c0095993251.png

streamlit write

streamlit完美支持markdown语法,可以直接使用write方法,来看示例

import streamlit as stst.write("""# 一级标题## 二级标题### 三级标题**强调**>这是引用. python    . java    . c/c++    . rust    
""")

103cec6aefd4fa31c6407d101fbbcf5f.png

streamlit write markdown

除了write方法,streamlit还提供了text方法,同样可以显示文本信息

import streamlit as stst.text('Hello streamlit.')

标题

import streamlit as stst.title('title')

e9ca3c715b6265f6149a634156504765.png

streamlit title

除了titlestreamlit还提供了headersubheader

import streamlit as stst.header('header')
st.subheader('subheader')

52aef844141cda4c2fa48758f0b613c3.png

streamlit header

滑动条

import streamlit as stnumber = st.slider('Pick a number', 0, 100)

49676a79e6e0d2f0fe2d8089391efe98.png

streamlit slider

选择框

import streamlit as stflag = st.checkbox('Yes')

cd97d92c1ca1f517f07025496b44211c.png

streamlit checkbox

单选按钮

import streamlit as stlanguages = ['python', 'c', 'rust', 'c++']st.radio('Pick a language', languages)

078c5515f503af78f5e53bc31a60cac4.png

streamlit radio

下拉选择框

import streamlit as stst.selectbox('用过哪几种编程语言?', ('python', 'c', 'java', 'rust'))

bd78d30b1c264a2fe0ec261353648f0b.png

streamlit selectbox

日期选择器

import streamlit as stdate = st.date_input('Pick a date')

10d08d262e68af30414a30a823c43542.png

streamlit date_input

颜色选择器

import streamlit as stcolor = st.color_picker('Pick a color')

e9c1268c14e10b5df9981c78d932ab8c.png

streamlit color_picker

文件选择器

import streamlit as stfile = st.file_uploader('Pick a file')

d1a8dfba4941dc7c714e3de925a5b2dd.png

streamlit file_uploader

streamlit的其它功能

显示json

import streamlit as stst.json({"code": 0,"data": {"sex": "female","age": 18,"score": 100}
})

6160a798de38d58d95099a6ad6b59df7.png

streamlit json

显示代码

from numpy.core.arrayprint import _leading_trailing
import streamlit as stcode = """def func():print('Hello streamlit.')
"""
st.code(code, language='python')

9bd7d3dd8908bb492f673ef0e259bcf1.png

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)

f4fea0ec0a970aad696b34180eed710b.png

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)

5af854ba7a5b80c210dff05774d6336a.png

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}
)

c70ac2e1ebf3a04fa1ad7d47c83cb85b.png

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)

765aaa1bc05a636c6db06ba08bb11325.png

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)

ef5976f6ea49f2e287992dd3ac4686e1.png

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_click=increment_counter)
st.write('Count= ', st.session_state.counter)

代码执行的效果是一样的。这是无需传参的示例,如果需要数据交互,可以使用argskwargs,看下面的示例

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', value=0, step=1)def increment_counter(increment_value):st.session_state.counter += increment_valueincrement = st.button('Increment', on_click=increment_counter,args=(increment_value, ))st.write('Count = ', st.session_state.counter)

89068d8101452a9a717ccaba17def8bd.png

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_value=0):st.session_state.counter += increment_valuedef decrement_counter(decrement_value=0):st.session_state.counter -= decrement_valuest.button('Increment', on_click=increment_counter,kwargs=dict(increment_value=5))st.button('Decrement', on_click=decrement_counter,kwargs=dict(decrement_value=1))st.write('Count = ', st.session_state.counter)

1db6ebe798c4e1f1be7aea4095bef6d9.png

callbacks kwargs

点击Increment按钮,Count就加5,点击Decrement按钮,Count就减1

会话状态的注意事项

关于会话状态,有两点需要注意,分别是

  • 只要页面打开并连接到streamlit服务器,会话状态就会一直存在。一旦关闭选项卡,会话状态中存储的所有内容都会丢失

  • 会话状态不会持久化。如果streamlit服务器崩溃,那么存储在会话状态中的所有内容都会被删除

53d6eca28bd2191228acc9f941f9fe0d.jpeg

http://www.yayakq.cn/news/733538/

相关文章:

  • 营销型企业网站制作昆明手机网站开发
  • 专门做相声的网站济宁做网站比较好的公司有哪些
  • 广告费内包括网站建设宁波企业网制作公司有哪些
  • 网站卖掉被拿来做网站了网络安全知识
  • 教育 企业 重庆网站建设现在可以做网站么
  • 网站建设维护岗位职责mxd 主题Wordpress
  • 网站管理助手建站教程建筑工程管理适合女生吗
  • 广州建设品牌网站做外贸用什么社交网站
  • 插画师培训网站建设企业微信公众号
  • 自学网站建设工资seo入门版
  • 哪个网站可以做行程建筑工程网校有哪些
  • 成都网站建设哪家比较好网站建设一个多少钱
  • 高校招生网站模板购物网站建设方案ppt
  • 成品网站免费模板网站开发与设计的总体思想
  • pc做网站服务器做胎儿羊水鉴定网站
  • 小学学校网站建设培训资料贾汪网架公司
  • 网站模板管理系统绿色模板网站
  • asp网站相册免费做简历网站有哪些
  • 安康网站定制厂家个人网站创建平台要多少钱
  • 如何做单位网站营销活动方案名称
  • 梅林网站建设云邮企业邮箱官网
  • 个人网站首页设计优秀作品在互联网公司上班都做啥的
  • 用自己服务器做网站广东外贸网站推广
  • 面对不法网站该怎样做石家庄小程序开发公司
  • 营销型网站的特点有哪些服务器可以做网站吗
  • 中山网站外包京东网站建设吗
  • 能做wordpress的网站常州网站制作公司有哪些
  • 门户网站建设方案 模板网络推广的工作内容是什么
  • 网站建设所用程序郑州专业网站制作建设
  • 抖音网站怎么做怎么增加网站首页权重