Random User Table Operations with Flask-SQLAlchemy

  • Share this:

Code introduction


This code defines a Python function based on Flask-SQLAlchemy that performs operations on a user table, including creating, getting, updating, and deleting users. The function randomly selects an operation to perform.


Technology Stack : Flask-SQLAlchemy, SQLAlchemy, Flask, SQLite

Code Type : Python Function

Code Difficulty : Intermediate


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

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    username = Column(String)
    email = Column(String)

def create_user_table():
    engine = create_engine('sqlite:///users.db')
    Base.metadata.create_all(engine)

def add_user(username, email):
    session = Session()
    new_user = User(username=username, email=email)
    session.add(new_user)
    session.commit()

def get_user_by_email(email):
    session = Session()
    user = session.query(User).filter_by(email=email).first()
    return user

def update_user_email(user_id, new_email):
    session = Session()
    user = session.query(User).get(user_id)
    user.email = new_email
    session.commit()

def delete_user(user_id):
    session = Session()
    user = session.query(User).get(user_id)
    session.delete(user)
    session.commit()

def random_user_action():
    actions = {
        'create': add_user,
        'get': get_user_by_email,
        'update': update_user_email,
        'delete': delete_user
    }
    selected_action = random.choice(list(actions.keys()))
    if selected_action == 'create':
        actions[selected_action]('JohnDoe', 'johndoe@example.com')
    elif selected_action == 'get':
        actions[selected_action]('johndoe@example.com')
    elif selected_action == 'update':
        actions[selected_action](1, 'newjohndoe@example.com')
    elif selected_action == 'delete':
        actions[selected_action](1)