mirror of
https://github.com/mizhexiaoxiao/vue-fastapi-admin.git
synced 2026-09-21 21:15:12 +00:00
first commit
This commit is contained in:
committed by
mizhexiaoxiao
parent
03efc0558d
commit
0586412ffa
@@ -0,0 +1,138 @@
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware import Middleware
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from tortoise.contrib.fastapi import register_tortoise
|
||||
|
||||
from app.api import api_router
|
||||
from app.controllers.user import UserCreate, user_controller
|
||||
from app.core.exceptions import (
|
||||
DoesNotExist,
|
||||
DoesNotExistHandle,
|
||||
HTTPException,
|
||||
HttpExcHandle,
|
||||
IntegrityError,
|
||||
IntegrityHandle,
|
||||
RequestValidationError,
|
||||
RequestValidationHandle,
|
||||
ResponseValidationError,
|
||||
ResponseValidationHandle,
|
||||
)
|
||||
from app.models.admin import Menu
|
||||
from app.schemas.menus import MenuType
|
||||
from app.settings.config import settings
|
||||
|
||||
from .middlewares import BackGroundTaskMiddleware
|
||||
|
||||
|
||||
def make_middlewares():
|
||||
middleware = [
|
||||
Middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=settings.CORS_ORIGINS,
|
||||
allow_credentials=settings.CORS_ALLOW_CREDENTIALS,
|
||||
allow_methods=settings.CORS_ALLOW_METHODS,
|
||||
allow_headers=settings.CORS_ALLOW_HEADERS,
|
||||
),
|
||||
Middleware(BackGroundTaskMiddleware),
|
||||
]
|
||||
return middleware
|
||||
|
||||
|
||||
def register_db(app: FastAPI, db_url=None):
|
||||
register_tortoise(
|
||||
app,
|
||||
# db_url='sqlite://db.sqlite3',
|
||||
# modules={'models':['app.models', "aerich.models"]},
|
||||
config=settings.TORTOISE_ORM,
|
||||
generate_schemas=True,
|
||||
)
|
||||
|
||||
|
||||
def register_exceptions(app: FastAPI):
|
||||
app.add_exception_handler(DoesNotExist, DoesNotExistHandle)
|
||||
app.add_exception_handler(HTTPException, HttpExcHandle)
|
||||
app.add_exception_handler(IntegrityError, IntegrityHandle)
|
||||
app.add_exception_handler(RequestValidationError, RequestValidationHandle)
|
||||
app.add_exception_handler(ResponseValidationError, ResponseValidationHandle)
|
||||
|
||||
|
||||
def register_routers(app: FastAPI, prefix: str = "/api"):
|
||||
app.include_router(api_router, prefix=prefix)
|
||||
|
||||
|
||||
async def init_superuser():
|
||||
user = await user_controller.model.exists()
|
||||
if not user:
|
||||
await user_controller.create(
|
||||
UserCreate(
|
||||
username="admin",
|
||||
email="admin@admin.com",
|
||||
password="123456",
|
||||
is_active=True,
|
||||
is_superuser=True,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
async def init_menus():
|
||||
menus = await Menu.exists()
|
||||
if not menus:
|
||||
parent_menu = await Menu.create(
|
||||
menu_type=MenuType.CATALOG,
|
||||
name="系统管理",
|
||||
path="/system",
|
||||
order=1,
|
||||
parent_id=0,
|
||||
icon="carbon:gui-management",
|
||||
is_hidden=False,
|
||||
component="Layout",
|
||||
keepalive=True,
|
||||
redirect="/system/user",
|
||||
)
|
||||
children_menu = [
|
||||
Menu(
|
||||
menu_type=MenuType.MENU,
|
||||
name="用户管理",
|
||||
path="user",
|
||||
order=1,
|
||||
parent_id=parent_menu.id,
|
||||
icon="material-symbols:person-outline-rounded",
|
||||
is_hidden=False,
|
||||
component="/system/user",
|
||||
keepalive=True,
|
||||
),
|
||||
Menu(
|
||||
menu_type=MenuType.MENU,
|
||||
name="角色管理",
|
||||
path="role",
|
||||
order=2,
|
||||
parent_id=parent_menu.id,
|
||||
icon="carbon:user-role",
|
||||
is_hidden=False,
|
||||
component="/system/role",
|
||||
keepalive=True,
|
||||
),
|
||||
Menu(
|
||||
menu_type=MenuType.MENU,
|
||||
name="菜单管理",
|
||||
path="menu",
|
||||
order=3,
|
||||
parent_id=parent_menu.id,
|
||||
icon="material-symbols:list-alt-outline",
|
||||
is_hidden=False,
|
||||
component="/system/menu",
|
||||
keepalive=True,
|
||||
),
|
||||
Menu(
|
||||
menu_type=MenuType.MENU,
|
||||
name="API管理",
|
||||
path="api",
|
||||
order=4,
|
||||
parent_id=parent_menu.id,
|
||||
icon="ant-design:api-outlined",
|
||||
is_hidden=False,
|
||||
component="/system/api",
|
||||
keepalive=True,
|
||||
),
|
||||
]
|
||||
await Menu.bulk_create(children_menu)
|
||||
Reference in New Issue
Block a user