I have created a login form using st.form. it takes userid and password as input. Once those are validated then i call my main pp.py. but problem i am facing is , mail app rendering below login form it is not clearing the login form.
You can create a single-element container with st.empty(), insert a form element on the returned container, and clear the form/container using .empty() once the submit button is pressed and the credentials are validated.
Here’s a toy example:
import streamlit as st
# Create an empty container
placeholder = st.empty()
actual_email = "email"
actual_password = "password"
# Insert a form in the container
with placeholder.form("login"):
st.markdown("#### Enter your credentials")
email = st.text_input("Email")
password = st.text_input("Password", type="password")
submit = st.form_submit_button("Login")
if submit and email == actual_email and password == actual_password:
# If the form is submitted and the email and password are correct,
# clear the form/container and display a success message
placeholder.empty()
st.success("Login successful")
elif submit and email != actual_email and password != actual_password:
st.error("Login failed")
else:
pass