Files
2020-04-10 23:30:57 +08:00

137 lines
3.8 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/micro'
},
'apps': {
'models': {
'models': ['examples.models'],
'default_connection': 'default',
}
}
}
def create_app():
fast_app = FastAPI(debug=True)
register_tortoise(fast_app, config=TORTOISE_ORM)
fast_app.mount('/admin', admin_app)
admin_app.init(
user_model='User',
admin_secret='test',
models='examples.models',
site=Site(
name='微服务管理后台',
logo='https://github.com/long2ice/fastapi-admin/raw/master/front/static/img/logo.png',
locale='zh-CN',
locale_switcher=False,
menu=[
Menu(
name='首页',
url='/',
icon='fa fa-home'
),
Menu(
name='配置',
title=True
),
Menu(
name='应用',
url='/rest/App',
icon='fa fa-pencil',
sort_fields=('uaid',),
search_fields=('uaid',)
),
Menu(
name='多对多测试',
url='/rest/ManyToManyTest'
),
Menu(
name='阿里云秘钥',
url='/rest/AliYunSecret',
icon='fa fa-user-secret'
),
Menu(
name='阿里云OSS',
url='/rest/AliYunOss',
icon='fa fa-database'
),
Menu(
name='App短信',
url='/rest/AppSms',
icon='fa fa-envelope-o',
search_fields=('app',)
),
Menu(
name='百度AI',
url='/rest/BaiduAi',
icon='fa fa-desktop'
),
Menu(
name='App百度AI',
url='/rest/AppBaiduAi',
icon='fa fa-laptop',
),
Menu(
name='在线参数',
url='/rest/Config',
icon='fa fa-cog'
),
Menu(
name='基本信息',
title=True
),
Menu(
name='请求日志',
url='/rest/ApiLog',
icon='fa fa-sticky-note'
),
Menu(
name='App版本',
url='/rest/AppVersion',
icon='fa fa-mobile'
),
Menu(
name='授权',
title=True
),
Menu(
name='用户',
url='/rest/User',
icon='fa fa-user'
),
Menu(
name='注销',
url='/login',
icon='fa fa-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, lifespan='on')