Функция для регистрации нового пользователя
import streamlit as st import requests def signup(): st.title("Sign Up")
Получить пользовательский ввод для формы регистрации
username = st.text_input("Username") email = st.text_input("Email") password = st.text_input("Password", type='password') password_confirm = st.text_input("Confirm Password", type='password')
Проверить, совпадают ли пароли
if password != password_confirm: st.error("Passwords do not match!") return
Отправить запрос на сервер для создания нового пользователя
res = requests.post("http://localhost:5000/signup", json={"username": username, "email": email, "password": password})
Проверьте, прошла ли регистрация успешно
if res.status_code == 200: st.success("Sign up successful! Please log in.") else: st.error("Error signing up.")
Функция входа пользователя
def login(): st.title("Log In")
Получить пользовательский ввод для формы входа
email = st.text_input("Email") password = st.text_input("Password", type='password')
Отправить запрос на сервер для входа пользователя
res = requests.post("http://localhost:5000/login", json={"email": email, "password": password})
Проверьте, прошел ли вход успешно
if res.status_code == 200: user_data = res.json() # Set user data in local storage st.success("Log in successful!") return user_data else: st.error("Error logging in.")
Функция для отображения профиля пользователя
def display_profile(user_data):
Получить пользовательские данные с сервера
res = requests.get("http://localhost:5000/profile", headers={"Authorization": f"Bearer {user_data['access_token']}"}) user_data = res.json()
Показать информацию о пользователе
st.title(user_data['username']) st.image(user_data['profile_picture'], width=100) st.write(f"Email: {user_data['email']}")
Основная функция
def main():
Приветственное сообщение
st.title("Streamlit Chat App") st.write("Welcome to the Streamlit Chat App! Please sign up or log in to get started.")
Проверьте, не авторизовался ли пользователь
user_data = st.local_storage.get("user_data")
Если пользователь вошел в систему, отобразить его профиль
if user_data: display_profile(user_data)
Если пользователь не вошел в систему, показать кнопки регистрации и входа
else: if st.button("Sign Up"): signup() if st.button("Log In"): user_data = login() if user_data: st.local_storage.set("user_data", user_data) if name == 'main': main()
Нажмите кнопку Streamlit, чтобы получить доступ к моему курсу Streamlit на Udemy.