Files
2020-04-06 18:55:21 +08:00

78 lines
1.9 KiB
Python

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, Menu
TORTOISE_ORM = {
'connections': {
'default': 'mysql://root:123456@127.0.0.1:3306/test'
},
'apps': {
'models': {
'models': ['examples.models'],
'default_connection': 'default',
}
}
}
def create_app():
fast_app = FastAPI()
register_tortoise(fast_app, config=TORTOISE_ORM)
fast_app.mount('/admin', admin_app)
admin_app.init(
user_model='TestUser',
admin_secret='test',
models='examples.models',
site=Site(
name='FastAPI-Admin',
logo='https://github.com/long2ice/fastapi-admin/raw/master/front/static/img/logo.png',
locale='en-US',
locale_switcher=True,
menu=[
Menu(
name='Home',
url='/home',
icon='fa fa-home',
),
Menu(
name='Information',
title=True,
icon='fa fa-user',
),
Menu(
name='User',
url='/rest/TestUser',
icon='fa fa-user',
),
Menu(
name='Logout',
url='/logout',
icon='icon-lock',
)
]
)
)
fast_app.add_middleware(
CORSMiddleware,
allow_origins=['*'],
allow_credentials=True,
allow_methods=['*'],
allow_headers=['*'],
)
return fast_app
app = create_app()
if __name__ == '__main__':
uvicorn.run('main:app', port=8000, debug=True, reload=True)