todo app
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, declarative_base
Base = declarative_base()
class TodoItem(Base):
__tablename__ = 'todo_items'
id = Column(Integer, primary_key=True)
task = Column(String, nullable=False)
completed = Column(Integer, default=0)
engine = create_engine('sqlite:///todos.sqlite')
Base.metadata.create_all(bind=engine)
st.title('Todo App')
with Session(engine) as session:
todos = session.query(TodoItem).all()
if 'new_task' not in st.session_state:
st.session_state.new_task = ''
# Input for new task
st.text_input('New Task', key='new_task')
if st.button('Add Task'):
new_todo = TodoItem(task=st.session_state.new_task)
with Session(engine) as session:
session.add(new_todo)
session.commit()
st.session_state.new_task = ''
# Display todos
if todos:
for todo in todos:
checkbox = st.checkbox(todo.task, value=todo.completed)
if checkbox:
with Session(engine) as session:
todo.completed = 1
session.commit()
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?