feat:增加博客处理模块
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel
|
||||
from pydantic import BaseModel, Field
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
@@ -13,14 +13,25 @@ class BlogQuery(BaseModel):
|
||||
year: Optional[int] = None
|
||||
|
||||
|
||||
class BlogResponse(BaseModel):
|
||||
id: Optional[int] = None
|
||||
title: Optional[str] = None
|
||||
topValue: Optional[int] = None
|
||||
isGreat: Optional[bool] = None
|
||||
category: Optional[str] = None
|
||||
summary: Optional[str] = None
|
||||
class BlogBase(BaseModel):
|
||||
title: str
|
||||
topValue: int
|
||||
isGreat: bool
|
||||
category: str
|
||||
content: Optional[str] = None
|
||||
|
||||
|
||||
class BlogCreate(BlogBase):
|
||||
pass
|
||||
|
||||
|
||||
class BlogUpdate(BlogBase):
|
||||
pass
|
||||
|
||||
|
||||
class BlogResponse(BlogBase):
|
||||
id: Optional[int] = None
|
||||
summary: Optional[str] = None
|
||||
wordCount: Optional[int] = None
|
||||
readDuration: Optional[float] = None
|
||||
visitCount: Optional[int] = None
|
||||
@@ -49,6 +60,21 @@ class BlogStatsResponse(BaseModel):
|
||||
wordCount: int
|
||||
|
||||
|
||||
class BlogVisitResponse(BaseModel):
|
||||
ip: str
|
||||
os: str
|
||||
browser: str
|
||||
uri: str
|
||||
title: Optional[str] = None
|
||||
visitTime: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
json_encoders = {
|
||||
datetime: lambda dt: dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
}
|
||||
|
||||
|
||||
class BlogLatestResponse(BaseModel):
|
||||
id: int
|
||||
title: str
|
||||
|
||||
Reference in New Issue
Block a user