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.service import project_detect_service as pds
|
||||||
from app.model.crud.project_train_crud import get_train
|
from app.model.crud.project_train_crud import get_train
|
||||||
from app.model.schemas.project_detect_schemas import ProjectDetectPager, ProjectDetectIn,\
|
from app.model.schemas.project_detect_schemas import ProjectDetectPager, ProjectDetectIn,\
|
||||||
ProjectDetectImgPager, ProjectDetectLogIn
|
ProjectDetectImgPager, ProjectDetectLogIn, ProjectDetectLogPager
|
||||||
from app.db.db_session import get_db
|
from app.db.db_session import get_db
|
||||||
|
|
||||||
detect = APIRouter()
|
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_log.id, detect_log.detect_id, session), media_type="text/plain")
|
||||||
|
|
||||||
|
|
||||||
@detect.get("/get_log_list/{detect_id}")
|
@detect.post("/get_log_pager")
|
||||||
def get_log_list(detect_id: int, session: Session = Depends(get_db)):
|
def get_log_pager(detect_log_pager: ProjectDetectLogPager, session: Session = Depends(get_db)):
|
||||||
"""
|
"""
|
||||||
根据推理集合id获取推理记录
|
根据推理集合id获取推理记录
|
||||||
:param detect_id:
|
:param detect_log_pager:
|
||||||
:param session:
|
:param session:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
result = pdc.get_log_list(detect_id, session)
|
result = pdc.get_log_pager(detect_log_pager, session)
|
||||||
result = jsonable_encoder(result)
|
result = jsonable_encoder(result)
|
||||||
return rc.response_success(data=result)
|
return rc.response_success(data=result)
|
||||||
|
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
from sqlalchemy.ext.declarative import declarative_base, declared_attr
|
from sqlalchemy.ext.declarative import declarative_base, declared_attr
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
import datetime
|
from datetime import datetime
|
||||||
|
from zoneinfo import ZoneInfo
|
||||||
|
|
||||||
Base = declarative_base()
|
Base = declarative_base()
|
||||||
|
local_timezone = ZoneInfo("Asia/Shanghai")
|
||||||
|
|
||||||
|
|
||||||
class DbCommon(Base):
|
class DbCommon(Base):
|
||||||
__abstract__ = True
|
__abstract__ = True
|
||||||
id: Mapped[int] = mapped_column(primary_key=True)
|
id: Mapped[int] = mapped_column(primary_key=True)
|
||||||
create_time: Mapped[datetime.datetime] = mapped_column(default=datetime.datetime.utcnow())
|
create_time: Mapped[datetime] = mapped_column(default=datetime.now(local_timezone))
|
||||||
update_time: Mapped[datetime.datetime] = mapped_column(default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow())
|
update_time: Mapped[datetime] = mapped_column(default=datetime.now(local_timezone),
|
||||||
|
onupdate=datetime.now(local_timezone))
|
||||||
|
|
||||||
@declared_attr
|
@declared_attr
|
||||||
def __tablename__(cls):
|
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.bussiness_model import ProjectDetect, ProjectDetectImg, ProjectDetectLog, ProjectDetectLogImg
|
||||||
from app.model.schemas.project_detect_schemas import ProjectDetectOut, ProjectDetectPager, \
|
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
|
from app.db.page_util import get_pager
|
||||||
|
|
||||||
|
|
||||||
@ -178,6 +179,21 @@ def get_log_list(detect_id: int, session: Session):
|
|||||||
return result
|
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):
|
def get_log_imgs(log_id: int, session: Session):
|
||||||
query = session.query(ProjectDetectLogImg).filter_by(log_id=log_id).order_by(asc(ProjectDetectLogImg.id))
|
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()]
|
result = [ProjectDetectLogImgOut.from_orm(img) for img in query.all()]
|
||||||
|
@ -66,6 +66,12 @@ class ProjectDetectLogIn(BaseModel):
|
|||||||
pt_type: Optional[str] = Field('best', description="权重文件类型")
|
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):
|
class ProjectDetectLogOut(BaseModel):
|
||||||
id: Optional[int]
|
id: Optional[int]
|
||||||
detect_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 = ProjectDetectLog()
|
||||||
|
detect_log.detect_name = detect.detect_name
|
||||||
detect_log.detect_id = detect.id
|
detect_log.detect_id = detect.id
|
||||||
detect_log.detect_version = version_path
|
detect_log.detect_version = version_path
|
||||||
detect_log.train_id = train.id
|
detect_log.train_id = train.id
|
||||||
|
@ -190,7 +190,7 @@ def run_commend(data: str, project: str,
|
|||||||
"--name=" + name,
|
"--name=" + name,
|
||||||
"--epochs=" + str(epochs),
|
"--epochs=" + str(epochs),
|
||||||
"--batch-size=4",
|
"--batch-size=4",
|
||||||
"--exist_ok"],
|
"--exist-ok"],
|
||||||
bufsize=1, # bufsize=0时,为不缓存;bufsize=1时,按行缓存;bufsize为其他正整数时,为按照近似该正整数的字节数缓存
|
bufsize=1, # bufsize=0时,为不缓存;bufsize=1时,按行缓存;bufsize为其他正整数时,为按照近似该正整数的字节数缓存
|
||||||
shell=False,
|
shell=False,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
|
Reference in New Issue
Block a user