python时区问题

部分接口返回的问题
This commit is contained in:
2025-03-07 09:56:09 +08:00
parent 865b077a91
commit 758082db14
6 changed files with 36 additions and 10 deletions

View File

@ -9,7 +9,7 @@ from app.model.crud import project_detect_crud as pdc
from app.service import project_detect_service as pds
from app.model.crud.project_train_crud import get_train
from app.model.schemas.project_detect_schemas import ProjectDetectPager, ProjectDetectIn,\
ProjectDetectImgPager, ProjectDetectLogIn
ProjectDetectImgPager, ProjectDetectLogIn, ProjectDetectLogPager
from app.db.db_session import get_db
detect = APIRouter()
@ -123,15 +123,15 @@ def run_detect_yolo(detect_log_in: ProjectDetectLogIn, session: Session = Depend
detect_log.id, detect_log.detect_id, session), media_type="text/plain")
@detect.get("/get_log_list/{detect_id}")
def get_log_list(detect_id: int, session: Session = Depends(get_db)):
@detect.post("/get_log_pager")
def get_log_pager(detect_log_pager: ProjectDetectLogPager, session: Session = Depends(get_db)):
"""
根据推理集合id获取推理记录
:param detect_id:
:param detect_log_pager:
:param session:
:return:
"""
result = pdc.get_log_list(detect_id, session)
result = pdc.get_log_pager(detect_log_pager, session)
result = jsonable_encoder(result)
return rc.response_success(data=result)

View File

@ -1,15 +1,18 @@
from sqlalchemy.ext.declarative import declarative_base, declared_attr
from sqlalchemy.orm import Mapped, mapped_column
import datetime
from datetime import datetime
from zoneinfo import ZoneInfo
Base = declarative_base()
local_timezone = ZoneInfo("Asia/Shanghai")
class DbCommon(Base):
__abstract__ = True
id: Mapped[int] = mapped_column(primary_key=True)
create_time: Mapped[datetime.datetime] = mapped_column(default=datetime.datetime.utcnow())
update_time: Mapped[datetime.datetime] = mapped_column(default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow())
create_time: Mapped[datetime] = mapped_column(default=datetime.now(local_timezone))
update_time: Mapped[datetime] = mapped_column(default=datetime.now(local_timezone),
onupdate=datetime.now(local_timezone))
@declared_attr
def __tablename__(cls):

View File

@ -5,7 +5,8 @@ from fastapi.encoders import jsonable_encoder
from app.model.bussiness_model import ProjectDetect, ProjectDetectImg, ProjectDetectLog, ProjectDetectLogImg
from app.model.schemas.project_detect_schemas import ProjectDetectOut, ProjectDetectPager, \
ProjectDetectImageOut, ProjectDetectImgPager, ProjectDetectLogOut, ProjectDetectLogImgOut, ProjectDetectList
ProjectDetectImageOut, ProjectDetectImgPager, ProjectDetectLogOut, ProjectDetectLogImgOut, \
ProjectDetectList, ProjectDetectLogPager
from app.db.page_util import get_pager
@ -178,6 +179,21 @@ def get_log_list(detect_id: int, session: Session):
return result
def get_log_pager(detect_log_pager: ProjectDetectLogPager, session: Session):
"""
获取分页数据
:param detect_log_pager:
:param session:
:return:
"""
query = session.query(ProjectDetectLog).filter_by(detect_id=detect_log_pager.detect_id)\
.order_by(asc(ProjectDetectLog.id))
pager = get_pager(query, detect_log_pager.pagerNum, detect_log_pager.pagerSize)
pager.data = [ProjectDetectLogOut.from_orm(log) for log in pager.data]
pager.data = jsonable_encoder(pager.data)
return pager
def get_log_imgs(log_id: int, session: Session):
query = session.query(ProjectDetectLogImg).filter_by(log_id=log_id).order_by(asc(ProjectDetectLogImg.id))
result = [ProjectDetectLogImgOut.from_orm(img) for img in query.all()]

View File

@ -66,6 +66,12 @@ class ProjectDetectLogIn(BaseModel):
pt_type: Optional[str] = Field('best', description="权重文件类型")
class ProjectDetectLogPager(BaseModel):
detect_id: Optional[int] = Field(..., description="推理集合id")
pagerNum: Optional[int] = Field(None, description="当前页码")
pagerSize: Optional[int] = Field(None, description="每页数量")
class ProjectDetectLogOut(BaseModel):
id: Optional[int]
detect_id: Optional[int]

View File

@ -106,6 +106,7 @@ def run_detect_yolo(detect_in: ProjectDetectLogIn, detect: ProjectDetect, train:
# 构建推理记录数据
detect_log = ProjectDetectLog()
detect_log.detect_name = detect.detect_name
detect_log.detect_id = detect.id
detect_log.detect_version = version_path
detect_log.train_id = train.id

View File

@ -190,7 +190,7 @@ def run_commend(data: str, project: str,
"--name=" + name,
"--epochs=" + str(epochs),
"--batch-size=4",
"--exist_ok"],
"--exist-ok"],
bufsize=1, # bufsize=0时为不缓存bufsize=1时按行缓存bufsize为其他正整数时为按照近似该正整数的字节数缓存
shell=False,
stdout=subprocess.PIPE,