重构代码
This commit is contained in:
58
main.py
58
main.py
@@ -5,25 +5,55 @@ Contact: yt.li2@siat.ac.cn
|
||||
"""
|
||||
|
||||
from fastapi import FastAPI
|
||||
import logging
|
||||
import os
|
||||
from database.material_project_router import router as material_project_router
|
||||
from database.oqmd_router import router as oqmd_router
|
||||
from model.fairchem_router import router as fairchem_router, init_model
|
||||
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.middleware import Middleware
|
||||
from starlette.middleware.base import BaseHTTPMiddleware
|
||||
from router.mp_router import router as material_router
|
||||
from router.oqmd_router import router as oqmd_router
|
||||
from router.fairchem_router import router as fairchem_router
|
||||
from error_handlers import (
|
||||
handle_general_error,
|
||||
handle_http_error,
|
||||
handle_validation_error
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
from utils import setup_logging
|
||||
from router.fairchem_router import init_model
|
||||
|
||||
app = FastAPI()
|
||||
# 初始化日志配置
|
||||
setup_logging()
|
||||
|
||||
# 创建中间件列表
|
||||
middleware = [
|
||||
Middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=["*"],
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
]
|
||||
|
||||
app = FastAPI(middleware=middleware)
|
||||
|
||||
@app.on_event("startup")
|
||||
def startup_event():
|
||||
async def startup_event():
|
||||
"""应用启动时初始化模型"""
|
||||
init_model()
|
||||
|
||||
app.include_router(material_project_router)
|
||||
# 注册路由
|
||||
app.include_router(material_router)
|
||||
app.include_router(oqmd_router)
|
||||
app.include_router(fairchem_router)
|
||||
|
||||
# 添加全局异常处理
|
||||
@app.exception_handler(Exception)
|
||||
async def global_exception_handler(request, exc):
|
||||
return handle_general_error(exc)
|
||||
|
||||
@app.exception_handler(ValueError)
|
||||
async def validation_exception_handler(request, exc):
|
||||
return handle_validation_error(exc)
|
||||
|
||||
@app.exception_handler(ConnectionError)
|
||||
async def http_exception_handler(request, exc):
|
||||
return handle_http_error(exc)
|
||||
|
||||
Reference in New Issue
Block a user