This Flask app uses SQLAlchemy and the repository pattern to add and list users. It keeps database code inside UserRepository.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
class UserRepository:
def __init__(self, db_session):
self.db_session = db_session
def add_user(self, user):
self.db_session.add(user)
self.db_session.commit()
def get_user(self, user_id):
return self.db_session.query(User).get(user_id)
def list_users(self):
return self.db_session.query(User).all()
with app.app_context():
db.create_all()
repo = UserRepository(db.session)
user1 = User(name='Alice')
user2 = User(name='Bob')
repo.add_user(user1)
repo.add_user(user2)
all_users = repo.list_users()
for user in all_users:
print(f'User {user.id}: {user.name}')