Skip to content

Instantly share code, notes, and snippets.

@cuongld2
Created March 17, 2020 05:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cuongld2/df1d12bc938772132d8ae987e4ce0401 to your computer and use it in GitHub Desktop.
Save cuongld2/df1d12bc938772132d8ae987e4ce0401 to your computer and use it in GitHub Desktop.
CRUD to manipulate data into MySQL database
from sqlalchemy.orm import Session
from . import models, schemas
import bcrypt
def get_user_by_username(db: Session, username: str):
return db.query(models.UserInfo).filter(models.UserInfo.username == username).first()
def create_user(db: Session, user: schemas.UserCreate):
hashed_password = bcrypt.hashpw(user.password.encode('utf-8'), bcrypt.gensalt())
db_user = models.UserInfo(username=user.username, password=hashed_password, fullname=user.fullname)
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
def check_username_password(db: Session, user: schemas.UserAuthenticate):
db_user_info: models.UserInfo = get_user_by_username(db, username=user.username)
return bcrypt.checkpw(user.password.encode('utf-8'), db_user_info.password.encode('utf-8'))
def create_new_blog(db: Session, blog: schemas.BlogBase):
db_blog = models.Blog(title=blog.title, content=blog.content)
db.add(db_blog)
db.commit()
db.refresh(db_blog)
return db_blog
def get_all_blogs(db: Session):
return db.query(models.Blog).all()
def get_blog_by_id(db: Session, blog_id: int):
return db.query(models.Blog).filter(models.Blog.id == blog_id).first()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment