Example : Reset codes in Streamlit Python.
import datetime
from datetime import date
from datetime import datetime
import streamlit as st
------------ or ------------
from datetime import date, datetime, time
import streamlit as st
def clear():
st.session_state.name2 = ""
st.session_state.age2
# st.session_state.age2 = 0
# st.session_state.age2 = None
st.session_state.email2 = ""
st.session_state.dob2 = date.today() # Reset to today’s date
st.session_state.examtime2 = datetime.now() # Reset to current time
#st.session_state.examtime2 = time(0, 0)
# st.session_state.gender2 = None
st.session_state.gender2 = "Male"
st.session_state.passwd2 = ""
st.session_state.addr2 = ""
st.session_state["nat2"] = "Select One"
# st.session_state["matric2"] = True
st.session_state["matric2"] = False
st.session_state["inter2"] = False
st.session_state["grad2"] = False
st.session_state.rem2 = "N/A"
# Streamlit UI Form design codes
st.title("User Registration Form")
with st.form("form1"):
name1 = st.text_input("Enter Your Name", max_chars=30, key="name2")
# age1 = st.number_input("Enter Your Age", min_value=18, key="age2")
# age1 = st.number_input("Enter Your Age", key="age2")
age1 = st.number_input("Enter Your Age", value=0, key="age2")
email1 = st.text_input("Enter Your Email", key="email2")
gender1 = st.radio("Select Your Gender", ["Male", "Female", "Transgender"], key="gender2")
passwd1 = st.text_input('Enter Password', type="password", key="passwd2")
addr1 = st.text_area('Enter Your Address', height=150, key="addr2")
dob1 = st.date_input("Choose Your Birth Date", key="dob2", value=date.today())
# dob1 = st.date_input("Choose your Date of Birth", key="dob2")
# dob3 = dob1.strftime("%d-%m-%Y") # Format date as DD-MM-YYYY
# dob3 = dob1.strftime("%d-%b-%Y") # Format date as DD-MMM-YYYY
examtime1 = st.time_input("Choose Your Entry Time", key="examtime2", value=datetime.now())
#display time in textbox
val1 = datetime.now()
default_time = val1.strftime("%H:%M:%S")
exam_time = st.text_input("Examination Start Time", value=default_time)
nat1 = st.selectbox("Select Your Nationality", ('Select One', 'India', 'USA', 'Nepal', 'Bhutan', 'Sri Lanka'),key="nat2")
st.write("Choose Your Qualification")
matric1 = st.checkbox("Matric", key="matric2")
inter1 = st.checkbox("Intermediate", key="inter2")
grad1 = st.checkbox("Graduation", key="grad2")
rem1 = st.text_input("Enter Your Remarks, if any", value="N/A", key="rem2")
# To set buttons in one row(by default vertical)
col1, col2, col3, col4, col5 = st.columns(5)
with col1:
submit1 = st.form_submit_button("Submit")
with col2:
if st.form_submit_button("Reset", on_click=clear):
st.rerun() # Refresh UI to reset values
with col3:
delete1 = st.form_submit_button("Delete")
with col4:
update1 = st.form_submit_button("Update")
with col5:
exit1 = st.form_submit_button("Exit")
Example : Another Reset & Save code in Streamlit Python.
import os
from datetime import date
from sqlalchemy import create_engine, text
import streamlit as st
# --- Database Connection ---
# Connect to the MySQL database using SQLAlchemy with pymysql driver.
engine = create_engine("mysql+pymysql://root:@localhost/Ecms")
# Optional: Display a message on successful connection
# st.success("Database Connected Successfully")
# --- Session Flag Setup for Reset ---
# Initialize a reset flag in session state (used to reset form fields).
if "reset_flag" not in st.session_state:
st.session_state.reset_flag = False
# --- Handle Reset Before Widgets Are Rendered ---
# If reset is triggered, clear all form-related session state values.
if st.session_state.reset_flag:
#st.session_state["custslno2"] = 1
st.session_state["custslno2"] = ""
st.session_state["custdob2"] = date.today()
st.session_state["custname2"] = ""
st.session_state["custfn2"] = ""
st.session_state["custadr2"] = ""
st.session_state["custmno2"] = 0
st.session_state["custemailid2"] = ""
st.session_state["custgender2"] = "Male"
#st.session_state["matric"] = False
#st.session_state["inter"] = False
#st.session_state["grad"] = False
st.session_state["custage2"] = 0
st.session_state["custOccupation2"] = ""
st.session_state["custremarks2"] = ""
#st.session_state["remark"] = "N/A"
st.session_state.reset_flag = False # Reset the flag after clearing
# --- Streamlit Form UI ---
st.title("Customer Details") # Title of the app
# Create a form to enter customer details
with st.form("form1"):
# Input fields with keys linked to session state
custslno1 = st.text_input("Serial Number", key="custslno2")
custdob1 = st.date_input("Date", key="custdob2", value=date.today())
custname1 = st.text_input("Name", max_chars=30, key="custname2")
custfn1 = st.text_input("Father Name", max_chars=30, key="custfn2")
custadr1 = st.text_area("Address", max_chars=30, key="custadr2")
custmno1 = st.number_input("Mobile Number", key="custmno2", min_value=0, max_value=9999999999, value=0)
custemailid1 = st.text_input("Email Id", max_chars=30, key="custemailid2")
custgender1 = st.radio("Select Your Gender", ["Male", "Female", "Transgender"], key="custgender2")
custage1 = st.number_input("Age", key="custage2", value=0)
custOccupation1 = st.text_input("Occupation", key="custOccupation2")
custremarks1 = st.text_input("Remarks", key="custremarks2")
# Layout for form buttons in 5 columns
col1, col2, col3, col4, col5 = st.columns(5)
# --- Submit Button ---
with col1:
if st.form_submit_button("Submit"):
# Prepare SQL query for inserting customer data
query = text("""
INSERT INTO customer (
custslno5, custdob5, custname5, custfn5, custadr5, custmno5,
custemailid5, custgender5, custage5, custoccupation5, remarks5
) VALUES (
:custslno, :custdob, :custname, :custfn, :custadr, :custmno,
:custemailid, :custgender, :custage, :custOccupation, :custremarks
)
""")
# Bind form input values to query parameters
params = {
"custslno": custslno1,
"custdob": str(custdob1),
"custname": custname1,
"custfn": custfn1,
"custadr": custadr1,
"custmno": custmno1,
"custemailid": custemailid1,
"custgender": custgender1,
"custage": custage1,
"custOccupation": custOccupation1,
"custremarks": custremarks1
}
# Try inserting data into the database
try:
with engine.connect() as conn:
conn.execute(query, params)
conn.commit()
# After successful insert, trigger form reset and rerun
st.session_state.reset_flag = True
st.rerun()
st.success("✅ Data inserted successfully!")
except Exception as e:
# Show error if insertion fails
st.error(f"❌ Error inserting data: {e}")
# --- Reset Button ---
with col2:
if st.form_submit_button("Reset"):
# Set reset flag and rerun app to clear inputs
st.session_state.reset_flag = True
st.rerun()
---------- OR ------------
#if st.form_submit_button("Reset", on_click=lambda: st.session_state.update({"reset_flag": True})):
#st.success("✅ Form Reset Successfully!")
# --- Exit Button ---
with col3:
if st.form_submit_button("Exit"):
# Exit the app (force stop)
st.write("Closing the app...")
os._exit(0)
# --- Update Placeholder ---
with col4:
update1 = st.form_submit_button("Update")
# You can implement update functionality here in the future
# --- Delete Placeholder ---
with col5:
delete1 = st.form_submit_button("Delete")
# You can implement delete functionality here in the future
0 Comments