FastAPI系列教程19:fastapi admin,即开即用的后台框架(1)


fastapi-amis-admin 是一个基于FastAPI web框架以及Amis前端框架即开即用的后台框架,类似于Django-Admin,它可以为FastAPI web应用程序快速生成一个可视化管理后台,配合其fastapi-user-auth套件使用时可以快速实现后台用户的认证与授权。

1、安装

pip install fastapi_amis_admin # 核心程序

pip install fastapi-amis-admin-cli # cli脚手架

pip install fastapi-user-auth # 用户RBAC认证与授权库

pip install fastapi-scheduler # 基于FastAPI和APScheduler的定时任务管理项目

2、Hello World

main.py

from fastapi import FastAPI  
from fastapi_amis_admin.admin.settings import Settings  
from fastapi_amis_admin.admin.site import AdminSite  
from fastapi_amis_admin.admin import admin  
from fastapi_amis_admin.amis.components import PageSchema  
from fastapi_amis_admin.admin import admin  
from fastapi_amis_admin.amis.components import Page  
  
# 创建AdminSite实例  
site = AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///./blog.db'))  
  
# 创建Hello World页面  
@site.register_admin  
class HelloWorldPageAdmin(admin.PageAdmin):  
    page_schema = 'Hello World Page'  
    page = Page(title='标题', body='Hello World!')  
  
# 将AdminSite实例挂载到app  
app = FastAPI()  
site.mount_app(app)

这时访问 http://127.0.0.1:8000/admin 就能看到我们新增的Hello World页面

3、CLI脚手架

fastapi-amis-admin-cli 是与fastapi-amis-admin相配套的用于快速构建FastAPI-Amis-Admin项目的拓展库。下面是它的基本用法:

# 查看帮助
faa --help

# 初始化一个`FastAPI-Amis-Admin`项目
faa new project_name --init

# 初始化一个`FastAPI-Amis-Admin`应用
faa new app_name

# 快速运行项目
faa run

4、基本项目结构说明

基本程序结构

Hello World例子中,我们大体可以看出在FastAPI-Amis-Admin项目中,一个FastAPI APP可以挂载多个AdminSite,而一个AdminSite可以由多个PageAdmin页面构成,其逻辑结构如下:

user_site_pages
admin_site_pages
other_sites_pages
PageAdmin
FormAdmin
IframeAdmin
TemplateAdmin
ModelAdmin
...
PageAdmin
FormAdmin
IframeAdmin
TemplateAdmin
ModelAdmin
...
...
admin_site
user_site
other_sites
app

推荐的目录结构

在实际项目开发中,涉及的数据模型及管理页面数量一般都比较多,fastapi-amis-admin建议项目采用类似django项目的目录结构。
我们可以使用 CLI脚手架快速生成初始化项目文件,

faa new project_name --init

也可以手动创建:

├─backend
│  │  .env
│  │  alembic.ini
│  │  amisadmin.db
│  │  main.py
│  │  requirements.txt
│  │  
│  ├─apps
│  │  │  __init__.py
│  │  │  
│  │  ├─blog
│  │  │  │  admin.py
│  │  │  │  apis.py
│  │  │  │  views.py
│  │  │  │  models.py
│  │  │  │  schemas.py
│  │  │  │  jobs.py
│  │  │  │  settings.py
│  │  │  │  __init__.py
│  │  │  │  
│  │  │  ├─templates
│  │  │  ├─static
│  │  │  
│  │  │          
│  │  ├─demo
│  │     │  admin.py
│  │     │  __init__.py
│  │     │  
│  │     ├─templates
│  │     │      element.html
│  │     │      simple.html
│  │          
│  ├─core
│  │  │  adminsite.py
│  │  │  settings.py
│  │  │  __init__.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值