fastapi-amis-admin:快速构建高效后台管理系统

文摘   2025-01-08 12:10   湖南  

在现代应用开发中,快速构建高效的后台管理系统是每个开发者追求的目标。随着技术的不断进步,越来越多的框架应运而生。在众多选项中,fastapi-amis-admin因其高性能、高效率的特点,成为了许多开发者的新宠。本文将详细介绍这一框架的特点、安装方法及简单示例,以帮助开发者快速上手。

框架背景及功能概述

fastapi-amis-admin 是一个基于 FastAPI 和 Amis 的高性能框架,支持 Python 3.7 及以上版本。其开发初衷是旨在改善应用生态,实现快速生成功能强大的可视化管理后台。遵循 Apache 2.0 开源协议,该项目对外开放,鼓励社区的支持和资助。

本框架的主要特色包括:

  • • 高性能:得益于 FastAPI,提供了极高的性能。

  • • 高效率:通过完善的类型提示,大幅提升代码复用率。

  • • 同步与异步混合编写支持:基于 SQLModel 和 SQLAlchemy,自定义数据库类型,自由选择同步或异步模式,具备良好的可扩展性。

  • • 前后端分离:前端由 Amis 渲染,后端接口由 fastapi-amis-admin 自动生成,实现接口重用。

  • • 强可扩展性:后台页面支持 Amis 页面和普通 HTML 页面,方便灵活地自定义界面。

  • • 自动 API 文档:通过 FastAPI 自动生成文档,便于调试和共享接口。

依赖项与模块构成

fastapi-amis-admin 主要由三个核心模块组成:

  • • Amis:基于百度的 Pydantic 数据模型构建库,用于快速生成和解析数据。

  • • CRUD:基于 FastAPI 和 SQLAlchemy,用于快速构建常见的 CRUD API 接口。

  • • Admin:受 Django-Admin 启发,将 Amis 和 CRUD 结合,快速构建 Web 管理后台。

安装与基本示例

要安装 fastapi-amis-admin,可以使用以下命令:

pip install fastapi_amis_admin

如果需要使用 SQLModel 创建模型,则可安装:

pip install fastapi_amis_admin[sqlmodel]

下面是一个简单的示例,演示如何创建一个 FastAPI 应用并集成 AdminSit。

from fastapi importFastAPI
from fastapi_amis_admin.admin.settings importSettings
from fastapi_amis_admin.admin.site importAdminSite

app =FastAPI()
site =AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///amisadmin.db'))
site.mount_app(app)

if __name__ =='__main__':
import uvicorn
    uvicorn.run(app)

模型与表单管理示例

在 fastapi-amis-admin 中,可以方便地使用 SQLModel 或 SQLAlchemy 模型。以下是使用 SQLModel 创建模型的示例:

from sqlmodel importSQLModel,Field
from typing importOptional

classCategory(SQLModel, table=True):
    id:Optional[int]=Field(default=None, primary_key=True, nullable=False)
    name:str=Field(title='CategoryName', max_length=100, unique=True, index=True, nullable=False)
    description:str=Field(default='', title='Description', max_length=255)

同时,框架还支持通过表单接收用户输入。

总结

fastapi-amis-admin 作为一个高性能的框架,为开发者提供了构建后台管理系统的强大工具。其高效的代码设计,完善的自动文档生成功能以及灵活的接口定义方式,使得开发过程变得简单而高效。对于希望快速启动后台管理项目的开发者来说,它无疑是一个值得尝试的选择。

项目地址:https://github.com/amisadmin/fastapi-amis-admin


小白这样学Python
专注Python编程开发知识分享!
 最新文章