feat: 用户表的增删改查

This commit is contained in:
martsforever
2025-08-22 18:36:25 +08:00
parent fc3909a08a
commit d226adeba7
2 changed files with 43 additions and 33 deletions
+4 -33
View File
@@ -1,51 +1,22 @@
from datetime import timedelta
from enum import Enum
from fastapi import FastAPI, Depends, HTTPException
from fastapi.security import OAuth2PasswordRequestForm, OAuth2PasswordBearer
from jwt import InvalidTokenError
from pydantic import BaseModel
from sqlmodel import select, Field
from sqlmodel import select
from starlette import status
from app.config.env import env
from app.model.BasicModel import BasicModel
from app.model.UserModel import RegistryUser, UserModel, UserValidate, PublicUser, UserService
from app.utils.CrpyUtils import CryptUtils, TokenInfo
from app.utils.db_utils import AsyncSessionDep
from app.utils.next_id import next_id
class UserValidate(str, Enum):
Y = 'Y'
N = 'N'
# 公共的,也是最后返回给前端的一个用户信息数据类型
class PublicUser(BasicModel):
username: str = Field(..., description="用户名")
email: str = Field(..., description="邮箱")
full_name: str = Field(..., description="用户全名")
valid: UserValidate = Field(default=UserValidate.N, description="用户账号是否已经激活")
# 注册的时候,客户端传入的用户信息,需要包含这个明文密码字段
class RegistryUser(PublicUser):
password: str
# 对pl_user表进行增删改查时的这个model类
class UserModel(PublicUser, table=True):
__tablename__ = "pl_user"
hash_password: str
class Token(BaseModel):
token: str
token_type: str
# 添加用户相关的端点接口
def add_user_route(app: FastAPI):
UserService.add_route(app=app, path="/user")
# 用户注册接口
@app.post("/registry")
async def _registry(registry_user: RegistryUser, session: AsyncSessionDep):