项目介绍FastAPI-Amis-Adminfastapi-amis-admin是一个高性能、高效率、易扩展的fastapi管理后台框架。受到Django-Admin的启发,拥有不逊于Django-Admin的强大功能。源代码·在线演示·文档·文档打不开?fastapi-amis-admin是基于fastapi+amis,使用Python3.7+,基于标准Python类型提示开发的高性能、高效率的web-admin框架。fastapi-amis-admin开发初衷是完善fastapi应用生态,快速生成fastapiweb应用的可视化管理后台。fastapi-amis-admin遵循Apache2.0协议,免费开源,但为了本项目更好的长期运维,fastapi-amis-admin非常希望得到您的赞助与合作支持。关键特性极高性能:基于FastAPI,您可以享受FastAPI的所有优势。效率更快:完善的编码类型提示,代码复用性更高。支持异步和同步混写:ORM基于SQLModel+Sqlalchemy,自由定制数据库类型,支持同步和异步模式,扩展性强。前后端分离:前端由Amis渲染,后端接口由fastapi-amis-admin自动生成,接口可复用。扩展性强:后台页面支持AmisPages和普通html页面,开发者可以轻松自由定制界面。自动生成API文档:FastAPI自动生成接口文档,方便开发者调试和共享接口。核心依赖Fastapi负责web部分SQLModel负责ORM模型映射(与SQLAlchemy+Pydantic完美结合,具备SQLAlchemy和Pydantic的所有功能)Amis负责Admin后台页面展示项目组成fastapi-amis-admin由三个核心模块组成,其中amis和fastapi-sqlmodel-crud可以作为独立的模块使用,amis_admin是在前者的基础上联合build.amis:一个基于baiduamis的pydantic数据模型构建库,用于快速生成/解析amisjson数据。fastapi-sqlmodel-crud:基于FastAPI+SQLModel,用于快速搭建Create、Read、Update、Delete通用API接口。amis_admin:受Django-Admin启发,结合amis+fastapi-sqlmodel-crud,用于快速搭建WebAdmin管理后台。安装pipinstallfastapi_amis_admin很简单ExamplefromfastapiimportFastAPIfromfastapi_amis_admin.amis_admin.settingsimportSettingsfromfastapi_amis_admin.amis_admin.siteimportAdminSite#创建FastAPI应用程序app=FastAPI()#创建AdminSite实例site=AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///admin.db'))#挂载后台管理系统site.mount_app(app)if__name__=='__main__':importuvicornuvicorn.run(app,debug=True)来自fastapi的模型管理示例从sqlmodel导入FastAPI从fastapi_amis_admin导入SQLModel。amis_admin.settingsimportSettingsfromfastapi_amis_admin.amis_admin.siteimportAdminSitefromfastapi_amis_admin.amis_adminimportadminfromfastapi_amis_admin.models.fieldsimportField#创建FastAPI应用程序app=FastAPI()#创建AdminSite实例site=AdminSite(settings=data_assites'aiosqlite:///admisadmin.db'))#首先schemaimportBaseApiOutfromfastapi_amis_admin.models.fieldsimportField#创建FastAPI应用app=FastAPI()#创建AdminSite实例site=AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///admisadmin.db'))#RegisterFormAdmin@site.register_adminclassUserLoginFormAdmin(admin.FormAdmin):page_schema='UserLoginForm'#配置表单信息,可省略form=Form(title='Thisisatestloginform',submitText='login')#创建表单数据模型classschema(BaseModel):username:str=Field(...,title='username',min_length=3,max_length=30)password:str=Field(...,title='password')#处理表单提交Dataasyncdefhandle(self,request:Request,data:BaseModel,**kwargs)->BaseApiOut[Any]:如果data.username=='amisadmin'和data.password=='amisadmin':returnBaseApiOut(msg='登录成功!',data={'token':'xxxxxx'})returnBaseApiOut(status=-1,msg='用户名或密码错误!')#挂载后台管理系统site.mount_app(app)if__name__=='__main__':importuvicornuvicorn.run(app,debug=True)界面预览在浏览器中打开http://127.0.0.1:8000/admin/:在浏览器中打开http://127.0.0.1:8000/admin/docs:未来计划[]Bug修复,细节完善。[]完善用户教程文档。[]不断扩展和改进核心功能。[]添加用户身份验证和授权系统。许可协议fastapi-amis-admin基于Apache2.0开源免费使用,可免费用于商业用途,但请在展示界面清楚显示FastAPI-Amis-Admin的版权信息。项目地址github:https://github.com/amisadmin/fastapi_amis_admingitee:https://gitee.com/Atomi/fastapi_amis_admin
