快速构建你的Web项目

本文介绍了如何使用streamlit快速构建Web项目,包括启动streamlit、消除默认标识、实现登录注册功能。streamlit是一个适合数据科学家的原型开发工具,但其在多人使用时存在页面请求不分隔的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

项目早期,不希望引入Vue、React等来增加复杂度,更不希望将大量时间花在CSS、JS实现页面布局和交互上,那如何快速构建一个Demo级用例呢?

你可以试试streamlit,经过我一段时间的使用,感觉是个不错的工具,嗯,开源的:https://github.com/streamlit/streamlit

而且,商业化感觉做的不错,社区比较活跃,可用组件比较丰富。

8c08e241ebdcf2051a53a344bbc497e0.png

本文先会介绍Streamlit的基础用法,然后会讨论如何实现登录、注册,并在最后提一下我眼中它的缺点。

run streamlit

streamlit自己的定位是给数据科学家使用的web原型开发工具,通过streamlit,你可以快速上线你的模型或各种数据分析报告。

这里,基于streamlit教程文档,了解streamlit的基础用法,其实这块,不是本文的重点,但为了文章完整性,还是补一下。

首先,你需要安装一下streamlit。

pip install streamlit

因为streamlit依赖比较多,建议你在虚拟环境中搞。

安装完后,可以先来个hello world,创建hello.py文件,代码如下:

import streamlit as st

st.title('Hello World!')

run起来:

streamlit run hello.py

效果如下:

09786d0bc5f710729a4114046acffabd.png

streamlit提供了很多组件,供你开发美观的页面,关于如何使用,streamlit的文档写的已经很好了,这里不费过多笔墨去讨论这个,大家看见文档就好了:https://docs.streamlit.io/library/get-started/create-an-app。

本文主要聊点文档中没有的。

streamlit如何启动的?

streamlit运行方式是使用streamlit run xxx.py的形式,阅读文档,发现,它也支持python -m streamlit run xxx.py 的形式。

感觉控制感不强,streamlit run命令是怎么运行的?

拉下streamlit源码,看其setup.py文件中的entry_points配置。

538f11d1e83a3b1ac9f698b10419b3d7.png

由上图可知,streamlit命令的功能来自streamlit/web/cli.py的main()方法。

71b5f0470bb79e2b6b6e98a27d975201.png

嗯,使用click库来接收命令参数,提一嘴,我感觉click库接收命令行参数的方式比Python原生的argparse优雅多了。

简单阅读cli.py的代码,可以发现streamlit基于tornado开发,使用了tornado.httpserve作为Web后端。

2cd45ca9372bdfff85f166150c80a45e.png

Tornado是Python中比较老的Web框架了,当时python的asyncio还不成熟,为了获得高性能的web框架,tornado基于Linux的epoll和BSD的kqueue实现了其高性能的异步io,其源码比较复杂难懂。

经过代码阅读,可以发现,streamlit会先载入index.html,然后再在index.html中嵌入你的页面逻辑(即使用streamlit提供组件创建的页面),具体的嵌入位置是id为root的div元素。

6999cf8130fe089957f62ca5bd331dfb.png

这便是streamlit的基本流程。

消除streamlit标识

在我们实现hello.py并运行起来时,会发现多处都有streamlit的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒编程-二两

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值