from pydantic import BaseModel
class UserBase(BaseModel):
username: str
email: str
class UserCreate(UserBase):
password: str
class UserDisplay(UserBase):
id: int
class Config():
orm_mode = True
ユーザー追加の関数を作成
データベースへ登録用のユーザー追加関数を作成します。
パスワードの追加時に、先ほど作成したハッシュ化関数を使用しています。
from db.hash import Hash
from sqlalchemy.orm.session import Session
from schemas import UserCreate
from db.models import User
def create_user(db: Session, request: UserCreate):
new_user = User(
username = request.username,
email = request.email,
password = Hash.get_password_hash(request.password)
)
db.add(new_user)
db.commit()
db.refresh(new_user)
return new_user
エンドポイントの作成
ユーザー作成用のエンドポイントを作成します。
from schemas import UserCreate, UserDisplay
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from db.database import get_db
from db import db_user
router = APIRouter(
prefix='/user',
tags=['user']
)
@router.post('/', response_model=UserDisplay)
def create_user(request: UserCreate, db: Session = Depends(get_db)):
return db_user.create_user(db, request)
コメント