Replicate the app from the image.
To upload files, please first save the app
import streamlit as st
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import Session, DeclarativeBase
# Set up database
class Base(DeclarativeBase):
pass
class Contact(Base):
__tablename__ = 'contacts'
id = Column(Integer, primary_key=True)
nom = Column(String)
prenom = Column(String)
engine = create_engine('sqlite:///contacts.sqlite')
Base.metadata.create_all(engine)
# App title
st.title('Contact Manager')
# Create form for contact information
nom = st.text_input('nom')
prenom = st.text_input('prenom')
# Create columns for buttons
col1, col2, col3 = st.columns(3)
# Add contact
if col1.button('add'):
with Session(engine) as session:
new_contact = Contact(nom=nom, prenom=prenom)
session.add(new_contact)
session.commit()
st.success('Contact added successfully!')
# Delete contact
if col2.button('delete'):
with Session(engine) as session:
contact = session.query(Contact).filter_by(nom=nom, prenom=prenom).first()
if contact:
session.delete(contact)
session.commit()
st.success('Contact deleted successfully!')
else:
st.error('Contact not found!')
# Update contact
if col3.button('update'):
with Session(engine) as session:
contact = session.query(Contact).filter_by(nom=nom).first()
if contact:
contact.prenom = prenom
session.commit()
st.success('Contact updated successfully!')
else:
st.error('Contact not found!')
# Display all contacts
with Session(engine) as session:
contacts = session.query(Contact).all()
if contacts:
st.write('Current Contacts:')
for contact in contacts:
st.write(f'{contact.nom} {contact.prenom}')
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?