| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- from pathlib import Path
- from fastapi import FastAPI, Request
- from fastapi.middleware.cors import CORSMiddleware
- from fastapi.staticfiles import StaticFiles
- from fastapi.templating import Jinja2Templates
- from tortoise.contrib.fastapi import register_tortoise
- from api.actors import router as actors_router
- from api.movies import router as movies_router
- from api.responses import success_response
- from api.studios import router as studios_router
- from settings import TORTOISE_ORM
- BASE_DIR = Path(__file__).resolve().parent
- app = FastAPI(title="电影管理 API")
- app.add_middleware(
- CORSMiddleware,
- allow_origins=["*"],
- allow_credentials=False,
- allow_methods=["*"],
- allow_headers=["*"],
- )
- register_tortoise(app=app, config=TORTOISE_ORM)
- app.mount(
- "/static",
- StaticFiles(directory=BASE_DIR / "upimg"),
- name="static",
- )
- templates = Jinja2Templates(directory=BASE_DIR / "templates")
- app.include_router(movies_router, prefix="/movies", tags=["电影"])
- app.include_router(studios_router, prefix="/studios", tags=["制片公司"])
- app.include_router(actors_router, prefix="/actors", tags=["演员"])
- @app.get("/")
- async def get_home():
- return success_response(
- data={"docs": "/docs"},
- message="电影管理 API 运行正常",
- )
- @app.get("/demo/query")
- async def get_query_parameters(request: Request):
- return success_response(data=dict(request.query_params))
- @app.post("/demo/body")
- async def get_request_body(request: Request):
- return success_response(data=await request.json())
- @app.get("/pages/movies")
- async def render_movies_page(request: Request):
- return templates.TemplateResponse(
- request=request,
- name="index.html",
- context={
- "movies": ["肖申克的救赎", "霸王别姬", "星际穿越", "千与千寻"],
- },
- )
|