geekdoc-python-zh/docs/askpython/introduction-to-streamlit.md

5.4 KiB
Raw Permalink Blame History

细流简介

原文:https://www.askpython.com/python-modules/introduction-to-streamlit

数据科学、数据分析和机器学习是过去几年中的一些新兴领域。采用上述技术的应用程序的开发有了巨大的增长Python 是开发这种应用程序的首选语言。

但是仅仅为机器学习模型编写代码是不够的因为普通人无法使用它。在这里以任何人都可以轻松使用的方式部署我们的模型是很重要的。Python 中有不同的选项来部署我们的模型,如 Django 和 Flask 框架。在使用这些框架时,我们还需要了解使用 HTML、CSS 和 JS 构建前端的知识。

如果我告诉你有一个更简单的方法呢?

Streamlit 是一个开源框架,让你不仅可以部署机器学习模型,还可以在几分钟内部署任何 Python 应用。它还能让我们管理并与他人分享我们的应用程序。

听起来很刺激,对吧?所以,让我们来探索 Streamlit 吧!


装置

首先,让我们先安装 streamlit。这样做真的很容易。你需要在电脑上安装 Python 3.7-Python 3.10、Anaconda、PIP 和你最喜欢的 Python IDE 。然后,在 anaconda 终端中,只需运行以下命令来安装streamlit:

pip install streamlit

此命令仅适用于 Windows。要在 Mac 和 Linux 上安装 Streamlit请参考此处的。


在细流中创建 hello world 应用程序

现在我们已经安装了 streamlit让我们开始创建一个简单的“Hello World”应用程序。

这个文件的名字是“ hello.py ”。

import streamlit as st

st.title("hello world")

要运行该应用程序,只需输入

streamlit run hello.py

该应用将于http://localhost:8501/在您的默认网络浏览器中运行。

输出:

Streamlit Hello Word

Streamlit Hello Word


Streamlit 中的文本元素

现在让我们看看 Streamlit 提供的一些文本元素。

| 元素 | 描述 | | 标题 | 设置页面的标题 | | 页眉 | 以标题格式显示文本 | | Subheader | 以副标题格式显示文本 | | 降价 | 对文本使用标记格式 | | 密码 | 将文本显示为代码,并突出显示适当的语法 | | 乳液 | 使用 latex 显示数学方程式 |

Text Elements in Streamlit

import streamlit as st

# set the app's title
st.title("Text Elements")

# header
st.header("Header in Streamlit")

# subheader
st.subheader("Subheader in Streamlit")

# markdown
# display text in bold formatting
st.markdown("**AskPython** is an awesome website!")
# display text in italic formatting
st.markdown("Visit _askpython.com_ to learn from various Python tutorials.")

# code block
code = '''
def add(a, b):
    print("a+b = ", a+b)
'''
st.code(code, language='python')

# latex
st.latex('''
(a+b)^2 = a^2 + b^2 + 2*a*b
''')

输出:

Streamlit Text Elements

Streamlit Text Elements

在上面的代码中,我们首先导入了 streamlit并添加了上表中讨论的每个文本元素。这里的语法也很容易理解。

markdown 部分,我们使用** **将文本加粗并使用_ _将其倾斜,就像我们一直做的那样。

此外,在代码块中,我们已经将语言指定为“ Python ”,以便根据需要突出显示代码。我们可以根据自己的需要指定任何语言。

现在,让我们来看看 Streamlit 中的一些小部件。

细流中的小组件

有了 widgets我们可以通过使用按钮、滑块等使我们的应用程序具有交互性。

细流中的按钮

import streamlit as st

#button
if st.button('Click here', help="Click to see the text change"):
    st.write('Hi there!')
else:
    st.write('Goodbye')

输出:

上面的代码由一个显示“点击这里”的按钮组成。在创建按钮时我们还使用“help”参数添加了一个工具提示。如果按钮被点击“你好”将打印在屏幕上否则将打印“再见”。

细流中的复选框

import streamlit as st

# check box
checked = st.checkbox('Click here')
if checked:
    st.write('Good job!')

输出:

短信“干得好!”仅当复选框被选中时才显示。

细流中的单选按钮

import streamlit as st

# radio button
lang = st.radio(
    "What's your favorite programming language?",
    ('C++', 'Python'))

if lang == 'C++':
    st.write('You selected C++.')
else:
    st.write('You selected Python.')

输出:

在这个例子中,我们有一个单选按钮,其中我们问了一个问题并给了用户两个选项。默认情况下选择第一个选项,如果用户选择第二个选项,将相应地显示文本。

细流中的滑块

import streamlit as st

# slider
score = st.slider('Please specify your test score', 
                   min_value=0, max_value=100, value=10)
st.write("My test score is ", score)

输出:

这是一个简单的滑块,min_value=0是滑块中的最小值,也是默认的最小值,max_value=100是滑块中的最大值,d value=10指定最初显示的值。所有这些值都可以根据我们的要求进行更改。


结论

本教程到此为止!这是 Streamlit 教程系列的第一篇。也请查看本系列中的其他教程。


参考