Python Web开发中,Streamlit是一个很受欢迎的框架,不过它默认是单页面应用。要是想做个导航菜单,切换不同的页面,就有点麻烦了。今天咱们来看看Hydralit这个库,它完美解决了这个问题,让你轻松构建多页面应用,还能整出特别漂亮的界面效果。
安装配置
装这个库特别简单,一行命令搞定:
pip install hydralit
不过要注意,它依赖Streamlit,得先把Streamlit装上:
pip install streamlit
基础用法
来看个最简单的例子:
import streamlit as st
from hydralit import HydraApp
# 创建应用实例
app = HydraApp(title='酷炫的多页面应用')
# 主页内容
def home():
st.title('欢迎来到主页')
st.write('这是咱们的主页内容')
# 关于页面
def about():
st.title('关于我们')
st.write('这是关于页面的内容')
# 注册页面
app.add_app(“主页”, app=home)
app.add_app(“关于”, app=about)
# 运行应用
app.run()
小贴士:
每个页面都是一个独立的函数
页面标题不能重复
run()方法要放在最后调用
页面切换效果
Hydralit支持好几种炫酷的切换效果:
app = HydraApp(
title='多页面应用',
nav_horizontal=True,
navbar_theme={“txc_inactive”: “#FFFFFF”},
navbar_animation=True
)
nav_horizontal设置为True就是横向导航栏,False就是侧边栏。navbar_theme可以自定义导航栏的样式,navbar_animation开启过渡动画。
登录认证
要是想加个登录功能,也很简单:
import streamlit as st
from hydralit import HydraApp
from hydralit.hydra_auth import HydraAuth
class MyAuth(HydraAuth):
def validate_credentials(self, username, password) -> bool:
# 这里写验证逻辑
if username == “admin” and password == “123456”:
return True
return False
app = HydraApp(title='需要登录的应用')
app.add_auth(MyAuth)
小贴士:
密码最好加密存储
可以自定义登录页面样式
支持记住登录状态
页面加载动画
给页面加个加载动画,体验更好:
from hydralit.loader import LoaderSpinner
def my_page():
with st.spinner('数据加载中...'):
# 这里放耗时操作
import time
time.sleep(2)
st.success('加载完成!')
app.add_loader_app(my_page, LoaderSpinner)
页面切换的时候就会显示一个转圈圈的动画,特别酷。
样式美化
Hydralit还能自定义主题:
app = HydraApp(
title='炫酷应用',
favicon=“”,
hide_streamlit_markers=True,
use_navbar=True,
navbar_sticky=True,
navbar_theme={
“txc_inactive”: “#FFFFFF”,
“menu_background”: “#4f8bf9”,
“txc_active”: “#F0F2F6”,
“option_active”: “#FFFFFF”
}
)
favicon可以设置网页图标,navbar_theme能改导航栏颜色。hide_streamlit_markers可以隐藏Streamlit的水印。
小贴士:
颜色值支持HEX和RGB格式
navbar_sticky设置导航栏是否固定
主题可以按需切换
底下给大家整理了几个实用场景:
数据分析面板
后台管理系统
可视化大屏
多步骤表单
代码写完了记得用这个命令运行:
streamlit run app.py
建议大家先从简单的开始玩,慢慢加功能,别上来就整复杂的。写代码最重要的就是多练习,遇到问题就查文档,折腾几次就熟练了。
推 荐 阅 读
点赞分享
让钱和爱流向你
领取专属 10元无门槛券
私享最新 技术干货