Функция для регистрации нового пользователя

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.