dict-server/main.py

57 lines
1.4 KiB
Python

from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
from tortoise.contrib.fastapi import register_tortoise
from app.api.redis_test import redis_test_router
from app.api.translator import translator_router
from app.utils import redis_client
from settings import TORTOISE_ORM, ONLINE_SETTINGS
from app.api.users import users_router
from app.api.admin.router import admin_router
from app.api.search import dict_search
from app.core.redis import init_redis, close_redis
import app.models.signals
@asynccontextmanager
async def lifespan(app: FastAPI):
# ---- startup ----
await init_redis()
try:
yield
finally:
await close_redis()
app = FastAPI(lifespan=lifespan)
import debug.httpdebugger
# 添加CORS中间件
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
register_tortoise(
app=app,
config=ONLINE_SETTINGS,
)
app.include_router(users_router, tags=["User API"], prefix="/users")
app.include_router(admin_router, tags=["Administrator API"], prefix="/admin")
app.include_router(dict_search, tags=["Dictionary Search API"])
app.include_router(redis_test_router, tags=["Redis Test-Only API"])
app.include_router(translator_router, tags=["Translation API"])
if __name__ == "__main__":
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)