fastapi-template/main.py

37 lines
1.1 KiB
Python

import os
from fastapi import FastAPI
from fastapi_sqlalchemy import DBSessionMiddleware
import fastapi_plugins
import logging.config as logging_config
from config import init_config
def create_app():
app = FastAPI()
@app.on_event("startup")
async def startup_event():
# 日志配置
# logging_config.fileConfig('conf/log.ini')
# 初始化配置文件
mysql_config, redis_config = init_config()
# 添加sqlalchemy数据库中间件
# once the middleware is applied, any route can then access the database session from the global ``db``
app.add_middleware(DBSessionMiddleware, db_url=mysql_config.sqlalchemy_db_uri)
# Redis 缓存初始化
await fastapi_plugins.redis_plugin.init_app(app, redis_config)
await fastapi_plugins.redis_plugin.init()
@app.on_event("shutdown")
async def shutdown_event():
await fastapi_plugins.redis_plugin.terminate()
# 在这里添加API route
from api import test
app.include_router(test.router)
return app
fast_api_app = create_app()