diff --git a/__pycache__/main.cpython-310.pyc b/__pycache__/main.cpython-310.pyc index b5dbf58..4c5f515 100644 Binary files a/__pycache__/main.cpython-310.pyc and b/__pycache__/main.cpython-310.pyc differ diff --git a/internal/__pycache__/models.cpython-310.pyc b/internal/__pycache__/models.cpython-310.pyc index f17c938..61623b6 100644 Binary files a/internal/__pycache__/models.cpython-310.pyc and b/internal/__pycache__/models.cpython-310.pyc differ diff --git a/internal/models.py b/internal/models.py index a5c278a..a52d42a 100644 --- a/internal/models.py +++ b/internal/models.py @@ -33,6 +33,35 @@ class User(BaseModel): class UserInDB(User): hashed_password: str = None +class Blog(BaseModel): + blogtitle:Annotated[str,Field( + title="博客标题", + pattern=r'^.{4,20}$', + examples=[""], + description="允许6-20个字符" + )] + blogcontent:Annotated[str,Field( + title="博客内容", + min_length=1, + description="最少1个字符" + )] + typeid:Annotated[int,Field( + title="类型id", + default=None, + description="类型id允许为空" + )] + descr:Annotated[str,Field( + title="备注", + default=None, + description="备注允许为空" + )] + +class BlogResponse(BaseModel): + status:int + message:str + blog:Blog + + class TypeList(BaseModel): blogid:Annotated[int,Field( title="博客id", diff --git a/main.py b/main.py index f6a7f48..1335ec4 100644 --- a/main.py +++ b/main.py @@ -4,10 +4,11 @@ from fastapi import Depends, FastAPI, HTTPException, status from dependencies import * from internal.models import Token from fastapi.middleware.cors import CORSMiddleware -from routers import usermanage,typemanage +from routers import usermanage,typemanage,blogmanage app=FastAPI() app.include_router(usermanage.router) app.include_router(typemanage.router) +app.include_router(blogmanage.router) app.add_middleware( CORSMiddleware, allow_origins=['http://localhost:5173'], # 允许的源 diff --git a/routers/__pycache__/blogmanage.cpython-310.pyc b/routers/__pycache__/blogmanage.cpython-310.pyc new file mode 100644 index 0000000..4ed574e Binary files /dev/null and b/routers/__pycache__/blogmanage.cpython-310.pyc differ diff --git a/routers/blogmanage.py b/routers/blogmanage.py new file mode 100644 index 0000000..c763a55 --- /dev/null +++ b/routers/blogmanage.py @@ -0,0 +1,18 @@ +from fastapi import Depends,APIRouter,status +from internal.models import * +from dependencies import get_current_active_user,execute_query + +router=APIRouter( + prefix="/blogs", + tags=['博客管理'] +) +@router.post('/add',response_model=BlogResponse) +async def blog_add(blog:Blog,_:User=Depends(get_current_active_user)): + select_query="INSERT INTO blogs (blogtitle,blogcontent,typeid,descr) VALUES (%s,%s,%s,%s)" + blog_data=(blog.blogtitle,blog.blogcontent,blog.typeid,blog.descr) + execute_query(select_query,blog_data) + return { + 'status':status.HTTP_200_OK, + 'message':'blog create successfully!', + 'blog':blog + } \ No newline at end of file