Streamlit中⽂⽂档(笔记)
Streamlit
written by candySad
特别⾯向机器学习的python webapp框架,⽅便快捷的⽤python脚本搭建webapp
⽂档中的演⽰内容请前往本项⽬查 本⽂档的完整版请前往仓库下载整个项⽬,以更好的查看⽂档中插⼊的图⽚和超链接,以及附带的演⽰⽂件
写在前⾯
Streamlit基于python脚本⽂件来实现⽹页应⽤,本质上,是在整个python脚本上不断重复从头运⾏到结尾的过程
这意味着,两个if…else分⽀中的部分是完全隔离,且通过按钮等⽅式运⾏⼀个⼜运⾏另⼀个时,其中⼀个的作⽤将完全不会对另⼀个分⽀产⽣任何影响,实际上Streamlit是从if…else语句的开头从新运⾏了这部分代码直到下⼀个暂停点
⽐如,点击第⼀个按钮使得if…else进⼊第⼀个分⽀修改⼀个全局变量tmp的值(初始为 0),使其⾃增 1,随后点击另⼀个按钮进⼊另⼀个分⽀,使tmp再次⾃增 1,最终tmp的值会是 1,因为两个分⽀最终只会运⾏⼀个,即第⼆个分⽀,第⼀个分⽀的操作会被Streamli回滚⽽取消
另外,所有可交互的组件如按钮和勾选框,对其进⾏⼀次交互只是修改了⼀次它的状态,与其绑定的on_click函数仅在其被激活的状态下运⾏⼀次,其没有激活时(按钮点击⼀次后,点击其他交互组件即会⾃动退回未激活状态)与其绑定的on_click函数就会回撤⽽变为未运⾏过的状态
因此,基于Streamlit的这种从前到后的脚本运⾏的特性,很多应⽤程序的编写逻辑可能与其他框架不同,当需要对某个数据反复修改时,需要考虑使⽤外部存储的⽅法
这部分的⼀些详细例⼦将留在
⽂档说明
本⽂档参照官⽅⽂档翻译总结
本⽂档的实例演⽰在同路径下
本项⽬结构
以下内容请前往本项⽬查
streamlit.md:⽂档本⾝
example.py:实例演⽰
mdimage:⽂档图⽚
icon:实例演⽰的webapp的icon
data:实例演⽰中使⽤的媒体⽂件
缺失部分
[Streamlit Components编写](####bi-directional component)
[Streamlit Cloud](###Streamlit Cloud)
版本
本⽂档参照官⽅API⽂档版本v1.2.0编写
安装
命令⾏指令
启动streamlit 的webapp 服务
命令⾏中的设置
例:
使⽤Ctrl +C 来停⽌应⽤程序
查看⽂档
清除cache
import
显⽰内容
st.write
pip install streamlit
1streanlit run example .py
1streamlit run your_script .py [-- script args ]
1
streamlit run your_script.py --server.port 801streamlit docs
1streamlit cache clear
1import streamlit as st
1st .write (*args , **kwargs )
1
将传⼊的内容显⽰在页⾯中
对换⾏效果没有很好的⽀持,换⾏符会被显⽰为⼀个空格
args (any)
write(string)
write(data_frame): 将data_frame显⽰为表格
write(error)
write(func) :显⽰⼀个函数的相关信息
write(module)
write(dict) :
write(mpl_fig)
write(altair)
write(keras)
write(graphviz)
write(plotly_fig)
write(bokeh_fig)
write(sympy_expr)
write(htmlable)
write(obj)
unsafe_allow_html (bool)
默认为False,会将参数中的html标签的内容渲染为纯⽂本
设置为True则会渲染其中的html标签
效果并不好,需要在页⾯中设置html代码部分应参照
magic
把你要写的内容直接写在py脚本⾥,markdown或数据或图都⾏,streamlit会把它们渲染出来将⽂本内容以多⾏注释的⽅式写出来
当前magic功能仅能够在main⽂件中运⾏
magic功能默认开启,需要关闭则查看
⽂本元素
st.markdown
Markdown
body(str) 按照的标准渲染Markdown⽀持的emoji⽀持⽤$或$$括起的 LaTeX \LaTeX LATE X 公式,⽤渲染
unsafe_allow_html (bool)
st.title
标题
body(str) 显⽰的内容
anchor(str) 设置该标题的锚点名称,不设置则为空锚点⽤于页⾯内跳转定位
st.header
头
body(str) 显⽰的内容
anchor(str) 设置该标题的锚点名称,不设置则为空锚点⽤于页⾯内跳转定位
st.subheader
# Draw a title and some text to the app:'''# This is the document title This is some _markdown_.'''import pandas as pd df = pd .DataFrame ({'col1': [1,2,3]})df # Draw the dataframe x = 10'x', x # Draw the string 'x' and then the value of x # Also works with most supported chart types import matplotlib .pyplot as plt import numpy as np arr = np .random .normal (1, 1, size =100)fig , ax = plt .subplots ()ax .hist (arr , bins =20)fig # Draw a Matplotlib chart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24st .markdown (body , unsafe_allow_html =False )
1st .title (body , anchor =None )
1st .header (body , anchor =None )
1
⼦头
body(str) 显⽰的内容
anchor(str) 设置该标题的锚点名称,不设置则为空锚点⽤于页⾯内跳转定位
st.caption
⼩号字体
body(str) 显⽰的内容
代码块
body(str) 显⽰的内容
language(str) 代码语⾔类型
<
纯⽂本
body(str) 显⽰的内容
st.latex
latex公式
body(str) 显⽰的内容
数据显⽰类型
st.dataframe
显⽰可⾏的数据框架
data(pandas.DataFrame, pandas.Styler, pyarrow.Table, numpy.ndarray, Iterable, dict, or None) dict实际上不能⽤width(int or None) 宽度
height(int or None) ⾼度
st.table
st .subheader (body , anchor =None )
html radio点击变颜1st .caption (body )
1st .text (body )
1st .latex (body )
1st .dataframe (data =None , width =None , height =None )
1st .table (data =None )1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论