Flask-SQLAlchemy User Creation with Custom Event Handling

  • Share this:

Code introduction


The code uses Flask-SQLAlchemy to create a database model, defines a custom event to perform an operation after a new user is created, and creates a Flask route to handle user creation requests.


Technology Stack : Flask-SQLAlchemy, SQLAlchemy, Flask, SQLite database, database models, custom events, ORM, web application

Code Type : The type of code

Code Difficulty : Intermediate


                
                    
from flask_sqlalchemy import SQLAlchemy, SQLAlchemyEventDispatcher
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship

# Define the database model
Base = declarative_base()
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)

# Create a Flask-SQLAlchemy instance
db = SQLAlchemy()

# Define a custom event that will be triggered after a new user is created
def after_user_create(mapper, connection, target):
    print(f"User {target.name} created!")

# Register the event
db.event.listen(User, 'after_insert', after_user_create)

def create_user(name):
    """Create a new user and save it to the database."""
    new_user = User(name=name)
    db.session.add(new_user)
    db.session.commit()

# Flask application setup
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db.init_app(app)

@app.route('/create_user/<name>')
def create_user_endpoint(name):
    create_user(name)
    return f"User {name} created successfully!"

if __name__ == '__main__':
    app.run(debug=True)