fastapi-amis-admin 是一个拥有高性能、高效率、易拓展的 fastapi 管理后台框架,启发自 Django-Admin,并且拥有不逊色于Django-Admin的强大功能。
fastapi-amis-admin 基于fastapi
+amis
开发的高性能并且高效率 web-admin
框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。
fastapi-amis-admin
开发的初衷是为了完善fastapi
应用生态, 为fastapi
web应用程序快速生成一个可视化管理后台. fastapi-amis-admin
遵循Apache2.0
协议免费开源, 但是为了更好的长期运营与维护此项目, fastapi-amis-admin
非常希望能够得到大家的赞助与支持.
性能极高:基于FastAPI, 可享受FastAPI的全部优势。
效率更快:完善的编码类型提示, 代码可重用性更高.
支持异步和同步混合编写: ORM
基于SQLModel
+Sqlalchemy
, 可自由定制数据库类型, 支持同步及异步模式, 可拓展性强.
前后端分离: 前端由Amis
渲染, 后端接口由fastapi-amis-admin
自动生成, 接口可重复利用.
可拓展性强: 后台页面支持Amis
页面及普通html
页面,开发者可以很方便的自由定制界面.
自动生成API文档: 由FastAPI
自动生成接口文档,方便开发者调试,以及接口分享.
SQLAlchemy
和Pydantic
的所有功能)fastapi-amis-admin
由三部分核心模块组成,其中amis
, fastapi-sqlmodel-crud
可作为独立模块单独使用,amis_admin
基于前者共同构建.
amis
: 基于baidu amis
的pydantic
数据模型构建库,用于快速生成/解析amis
json
数据.fastapi-sqlmodel-crud
: 基于FastAPI
+SQLModel
, 用于快速构建Create,Read,Update,Delete通用API接口.amis_admin
: 启发自Django-Admin
, 结合amis
+fastapi-sqlmodel-crud
, 用于快速构建Web Admin管理后台.pip install fastapi_amis_admin
from fastapi import FastAPI from fastapi_amis_admin.amis_admin.settings import Settings from fastapi_amis_admin.amis_admin.site import AdminSite # 创建FastAPI应用 app = FastAPI() # 创建AdminSite实例 site = AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///admisadmin.db')) # 挂载后台管理系统 site.mount_app(app) if __name__ == '__main__': import uvicorn uvicorn.run(app, debug=True)
from fastapi import FastAPI from sqlmodel import SQLModel from fastapi_amis_admin.amis_admin.settings import Settings from fastapi_amis_admin.amis_admin.site import AdminSite from fastapi_amis_admin.amis_admin import admin from fastapi_amis_admin.models.fields import Field # 创建FastAPI应用 app = FastAPI() # 创建AdminSite实例 site = AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///admisadmin.db')) # 先创建一个SQLModel模型,详细请参考: https://sqlmodel.tiangolo.com/ class Category(SQLModel, table=True): id: int = Field(default=None, primary_key=True, nullable=False) name: str = Field(title='CategoryName') description: str = Field(default='', title='Description') # 注册ModelAdmin @site.register_admin class CategoryAdmin(admin.ModelAdmin): page_schema = '分类管理' # 配置管理模型 model = Category # 挂载后台管理系统 site.mount_app(app) # 创建初始化数据库表 @app.on_event("startup") async def startup(): await site.create_db_and_tables() if __name__ == '__main__': import uvicorn uvicorn.run(app, debug=True)
from typing import Any from fastapi import FastAPI from pydantic import BaseModel from starlette.requests import Request from fastapi_amis_admin.amis.components import Form from fastapi_amis_admin.amis_admin import admin from fastapi_amis_admin.amis_admin.settings import Settings from fastapi_amis_admin.amis_admin.site import AdminSite from fastapi_amis_admin.crud.schema import BaseApiOut from fastapi_amis_admin.models.fields import Field # 创建FastAPI应用 app = FastAPI() # 创建AdminSite实例 site = AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///admisadmin.db')) # 注册FormAdmin @site.register_admin class UserLoginFormAdmin(admin.FormAdmin): page_schema = 'UserLoginForm' # 配置表单信息, 可省略 form = Form(title='这是一个测试登录表单', submitText='登录') # 创建表单数据模型 class schema(BaseModel): username: str = Field(..., title='用户名', min_length=3, max_length=30) password: str = Field(..., title='密码') # 处理表单提交数据 async def handle(self, request: Request, data: BaseModel, **kwargs) -> BaseApiOut[Any]: if data.username == 'amisadmin' and data.password == 'amisadmin': return BaseApiOut(msg='登录成功!', data={'token': 'xxxxxx'}) return BaseApiOut(status=-1, msg='用户名或密码错误!') # 挂载后台管理系统 site.mount_app(app) if __name__ == '__main__': import uvicorn uvicorn.run(app, debug=True)
http://127.0.0.1:8000/admin/
in your browserhttp://127.0.0.1:8000/admin/docs
in your browser
快速开始 安装 pip install fastapi_amis_admin 简单示例 1.创建文件**adminsite.py**: from fastapi_amis_admin.amis_admin.settings import Settings from fastapi_amis_admin.amis_admin.site import AdminSite from fastapi_a
涉及下边4处代码 1、模板中添加 <link rel="stylesheet" href="{{ url_for('static',path='/css/signin.css') }}"/> <script type="text/javascript" src="{{ url_for('static',path='/js/test.js') }}"> 2、py文件添加 app.mount("
17.FastAPI 表单数据 如果接收的数据不是JSON格式,而是表单字段,则需要使用Form。在FastAPI中,要使用Form,需要事先安装python-multipart,执行如下命令: pip install python-multipart Form参数与Path、Query、Body一样,从fastapi导入。其使用方法相同。 17.1使用Form参数 from fastapi im
docker-compose部署fastapi+nginx+mysql 概述 整个部署逻辑和django的部署比较相似,不过还是有一些不同的地方。 首先,使用的python镜像不是官方的,而是fastapi作者准备的一个镜像,这个镜像可以自动读取服务器的cpu数量确认启动的workers数,这个镜像仅适合但服务器的docker部署,不适合k8s使用。 整个项目结构如下: . ├── docker-
入门 创建项目 创建一个文件夹fast-tmp-study mkdir fast-tmp-study 创建虚拟环境(以poetry为例) poetry init poetry install 修改软件源(一般情况下不用修改,现在国内用默认源挺快的), 修改pyproject.toml文件,在后面加上: [[tool.poetry.source]] url = "https://mirrors.
概要设计 1、创建、发送、停止同步任务; 2、创建、抓取同步工作节点; 3、抓取、整合节点统计数据与实时数据并做页面展示; 4、抓取、整合任务统计数据与实施数据并做页面展示; 5、抓取告警日志并做页面展示; 6、收集、整合数据推送到中间件。 名词须知 数据源:数据存储位置,现启用kafka、jdbc、canal三种类型; 数据表组:
moa2-frontend 前后端分离 shop-server 3000 shop-admin 3010 nginx 8000 即3010 /api 即3000 worker_processes 1; error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; p
Flarum 管理面板是一个用户友好的论坛管理界面。 它只对「管理」组 的用户开放。 要进入管理界面,只需点击屏幕右上方您的 用户名, 选择 后台管理 即可。
应用管理后台 PDF版下载 可以为第三方应用设置一个管理后台,对第三方应用做一些必要的管理设置,可以按照如下步骤操作: 设置应用管理后台地址 第三方服务商在应用详情为第三方应用设置“管理后台主页” 企业管理员进入应用后台 管理员点击应用中的“进入管理后台”跳转到第三方服务商的“管理后台主页”链接,点击跳转到管理后台之后,服务商的管理后台可以得到授权码和过期时间,用于获取访问的管理员身份: 获取访问
您在CC直播平台注册直播管理账号,使用该账号在http://admin.bokecc.com 登录后可以创建管理监控直播间,为直播间主持人、讲师、助教、观众等角色设置密码,查看直播统计信息。 管理后台登录 1.打开CC视频管理后台页面http://admin.bokecc.com/,输入CC后台账号及密码进行登录。 2.在管理后台首页点击 “云直播” 菜单 3.进入直播管理页面 在直播管理页面可查
amis 是一个前端低代码框架,通过 JSON 配置就能生成各种后台页面,极大减少开发成本,甚至可以不需要了解前端。 目前在百度广泛用于内部平台的前端开发,已有 100+ 部门使用,创建了 3w+ 页面。 文档 https://baidu.gitee.io/amis/docs/index 相关工具及平台 通过 amis 搭建自己的后台系统:https://github.com/fex-team/a