streamlit 基于excel实现用户登录,如果登录成功,输入用户名和密码以及确定按钮消失,跳转至已编写好界面
时间: 2023-12-10 15:42:05 浏览: 49
可以使用 Streamlit 的 `SessionState` 来实现这个功能。首先,需要安装 `SessionState` 库:
```
!pip install streamlit-SessionState
```
然后,可以使用以下代码来实现基于 Excel 表格的用户登录:
```python
import streamlit as st
import pandas as pd
from streamlit.SessionState import SessionState
# 读取 Excel 表格
df = pd.read_excel("user_info.xlsx")
# 登录页面
def login():
state = SessionState.get(username="", password="", logged_in=False)
st.write("请输入用户名和密码:")
username = st.text_input("用户名")
password = st.text_input("密码", type="password")
if st.button("登录"):
if username in list(df["username"]) and password in list(df[df["username"] == username]["password"]):
state.username = username
state.password = password
state.logged_in = True
if state.logged_in:
st.write("登录成功!")
# 这里可以跳转到已编写好的界面
else:
st.warning("用户名或密码错误!")
login()
```
在这个例子中,我们使用 `pandas` 库读取了一个名为 `user_info.xlsx` 的 Excel 表格,其中包含了用户名和密码。然后,我们在登录页面中让用户输入用户名和密码,点击登录之后,如果输入的用户名和密码与表格中的匹配,就将 `SessionState` 中的 `logged_in` 变量设置为 `True`,表示登录成功。如果登录成功,我们可以在这个页面上显示一条消息,然后跳转到已编写好的界面。如果登录失败,我们会在页面上显示一个警告信息。