mirror of
https://github.com/fastapi-admin/fastapi-admin.git
synced 2025-08-14 10:47:30 +08:00
59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
import os
|
|
|
|
import uvicorn
|
|
from fastapi import FastAPI
|
|
from starlette.middleware.cors import CORSMiddleware
|
|
from tortoise.contrib.fastapi import register_tortoise
|
|
|
|
from fastapi_admin.factory import app as admin_app
|
|
from fastapi_admin.site import Site
|
|
|
|
TORTOISE_ORM = {
|
|
"connections": {"default": os.getenv("DATABASE_URL")},
|
|
"apps": {
|
|
"models": {
|
|
"models": ["examples.models", "fastapi_admin.models"],
|
|
"default_connection": "default",
|
|
}
|
|
},
|
|
}
|
|
|
|
|
|
def create_app():
|
|
fast_app = FastAPI(debug=False)
|
|
register_tortoise(fast_app, config=TORTOISE_ORM, generate_schemas=True)
|
|
fast_app.mount("/admin", admin_app)
|
|
|
|
fast_app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"],
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
return fast_app
|
|
|
|
|
|
app = create_app()
|
|
|
|
|
|
@app.on_event("startup")
|
|
async def start_up():
|
|
admin_app.init(
|
|
admin_secret="test",
|
|
permission=True,
|
|
site=Site(
|
|
name="FastAPI-Admin DEMO",
|
|
login_footer="FASTAPI ADMIN - FastAPI Admin Dashboard",
|
|
login_description="FastAPI Admin Dashboard",
|
|
locale="en-US",
|
|
locale_switcher=True,
|
|
theme_switcher=True,
|
|
),
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
uvicorn.run("main:app", port=8000, debug=False, reload=False, lifespan="on")
|