from app.model.bussiness_model import ProjectImage from app.model.schemas.project_info_schemas import ProjectInfoIn, ProjectInfoOut from app.model.bussiness_model import ProjectInfo from app.util import random_utils as ru from app.config.config_reader import datasets_url, runs_url, images_url from app.model.crud import project_info_crud as pic from app.util import os_utils as os from sqlalchemy.orm import Session from typing import List from fastapi import UploadFile def add_project(info: ProjectInfoIn, session: Session, user_id: int): """ 新建项目,完善数据,并创建对应的文件夹 :param info: 项目信息 :param session: 数据库session :param user_id: 用户id :return: """ project_info = ProjectInfo(**info.dict()) project_info.user_id = user_id project_info.project_no = ru.random_str(6) project_info.project_status = "0" project_info.train_version = 0 os.create_folder(datasets_url, project_info.project_no) os.create_folder(runs_url, project_info.project_no) pic.add_project(project_info, session) return project_info def upload_project_image(session: Session, project_info: ProjectInfoOut, files: List[UploadFile]): """ 上传项目的图片 :param files: 上传的图片 :param project_info: 项目信息 :param image: :param session: :return: """ for file in files: image = ProjectImage() image.project_id = project_info.id # 保存原图 path = os.save_images(images_url, project_info.project_no, file=file) image.image_url = path