python时区问题
部分接口返回的问题
This commit is contained in:
@ -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)
|
||||
|
||||
|
@ -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):
|
||||
|
@ -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()]
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user