Files
2021-04-25 17:17:21 +08:00

50 lines
1.3 KiB
Python

import os
import uvicorn
from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware
from starlette.staticfiles import StaticFiles
from tortoise.contrib.fastapi import register_tortoise
from examples import providers, settings
from examples.constants import BASE_DIR
from fastapi_admin.app import app as admin_app
def create_app():
app = FastAPI()
app.mount(
"/static",
StaticFiles(directory=os.path.join(BASE_DIR, "static")),
name="static",
)
admin_app.configure(
logo_url="https://preview.tabler.io/static/logo-white.svg",
template_folders=[os.path.join(BASE_DIR, "templates")],
login_provider=providers.Login,
)
app.mount("/admin", admin_app)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
expose_headers=["*"],
)
register_tortoise(
app,
config={
"connections": {"default": settings.DATABASE_URL},
"apps": {"models": {"models": ["examples.models"], "default_connection": "default"}},
},
generate_schemas=True,
)
return app
app_ = create_app()
if __name__ == "__main__":
uvicorn.run("main:app_", debug=True, reload=True)