ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Flask-SuperAdmin集成SQLAlchemy实战:几行代码打造数据库CRUD管理面板

Flask-SuperAdmin集成SQLAlchemy实战:几行代码打造数据库CRUD管理面板 Flask-SuperAdmin集成SQLAlchemy实战几行代码打造数据库CRUD管理面板【免费下载链接】Flask-SuperAdminThe best admin interface framework for Flask. With scaffolding for MongoEngine, Django and SQLAlchemy.项目地址: https://gitcode.com/gh_mirrors/fl/Flask-SuperAdminFlask-SuperAdmin是 Flask 生态中功能完整的后台管理界面框架Admin Interface原生支持SQLAlchemy、MongoEngine 和 Django 模型的脚手架Scaffolding。只需几行代码它就能为你现有的数据库模型自动生成带列表、创建、编辑、删除CRUD功能的后台管理面板省去手写繁琐的表单和路由代码。{: altFlask-SuperAdmin与SQLAlchemy集成的CRUD数据列表管理面板}为什么选择 Flask-SuperAdmin用 Flask SQLAlchemy 做业务系统时管理端往往是隐形工作量每个表都要写增删改查路由、手写表单、处理校验……而 Flask-SuperAdmin 把这些全部打包好了✅自动脚手架注册 SQLAlchemy 模型即获得完整的增删改查界面✅自动生成表单根据模型字段映射出 WTForms 表单并内置唯一性校验✅风格统一基于 Twitter Bootstrap 构建界面一致且美观✅可定制通过类属性类似 Django Admin 的方式控制列表列、表单字段、分页等完整入门可参考项目自带的快速上手文档 doc/quickstart.rstSQLAlchemy 集成示例见 examples/sqlalchemy/simple.py。一键安装步骤安装非常简单一条命令即可pip install Flask-SuperAdmin依赖项见 requirements.txt核心依赖为 Flask 和 WTForms。三步打造 SQLAlchemy CRUD 管理面板下面以一张User表为例展示完整流程完整可运行代码见 examples/sqlalchemy/simple.py。第 1 步定义 SQLAlchemy 模型from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy from flask.ext.superadmin import Admin app Flask(__name__) app.config[SECRET_KEY] 123456790 app.config[SQLALCHEMY_DATABASE_URI] sqlite:///test.sqlite db SQLAlchemy(app) class User(db.Model): id db.Column(db.Integer, primary_keyTrue) username db.Column(db.String(80), uniqueTrue) email db.Column(db.String(120), uniqueTrue) # 管理界面显示对象名称时需要定义 def __unicode__(self): return self.username第 2 步创建 Admin 实例admin Admin(app, Simple Models)第 3 步注册模型关键admin.register(User, sessiondb.session)注意注册 SQLAlchemy 模型时必须传入sessiondb.session这是与 MongoEngine/Django 模型注册方式的主要区别。后台会通过admin.register()自动探测模型类型并选择对应的后端核心逻辑位于 flask_superadmin/base.py 的register方法SQLAlchemy 后端实现位于 flask_superadmin/model/backends/sqlalchemy/orm.py。运行应用后访问/admin/路径即可看到自动生成的管理面板{: altFlask-SuperAdmin管理面板中的SQLAlchemy模型User数据列表与CRUD操作界面}面板自带哪些功能数据列表页分页展示记录默认每页 20 条支持勾选批量删除、一键跳转新建。新建/编辑表单页字段自动映射为表单控件日期字段自动挂载日期选择器外键/多对多关系自动转为下拉选择框效果如下{: altFlask-SuperAdmin为SQLAlchemy模型自动生成的编辑表单与CRUD管理界面}表单校验uniqueTrue的列会自动生成唯一性验证器重复数据无法提交实现位于 flask_superadmin/model/backends/sqlalchemy/orm.py 中的Unique校验类。自定义面板用类属性控制列和字段默认的通用后台通过继承自定义ModelAdmin来调整配置项定义在 flask_superadmin/model/base.py 的BaseModelAdmin中常用的长尾配置有配置项作用list_display控制列表页显示哪些列fields/exclude控制表单显示/排除哪些字段list_per_page每页显示条数默认 20readonly_fields指定只读字段category将视图归入左侧菜单的某个分组示例from flask_superadmin.model import ModelAdmin class UserAdmin(ModelAdmin): list_display (username, email) list_per_page 50 admin.register(User, UserAdmin, sessiondb.session)也可在注册时直接传入自定义管理类admin.register(User, admin_classUserAdmin, sessiondb.session)。新手常见坑位清单忘记传sessionadmin.register(User)少了sessiondb.session会导致后端参数缺失。模型没有名称方法未在模型上定义__unicode__/__str__列表中对象名称会显示异常。数据库未建表演示中用db.create_all()快速建表生产环境建议用 Alembic 等迁移工具。导入路径项目示例使用旧式flask.ext.superadmin导入较新版本环境请改用from flask_superadmin import Admin。表单定制如需更复杂的表单逻辑可参考 flask_superadmin/form.py 与模型后端转换器它基于 WTForms 的ModelConverter自动完成字段转换。总结Flask-SuperAdmin 让 Flask SQLAlchemy 项目的后台开发从数天缩短到几分钟安装 → 注册模型 → 打开浏览器一个风格统一、带校验和分页的 CRUD 管理面板就运行起来了。配合类属性定制和自定义 View它既能满足快速原型也能支撑复杂管理端需求。更多用法MongoEngine、Django、文件管理、国际化等可继续浏览 examples/ 目录下的示例与 doc/ 官方文档。【免费下载链接】Flask-SuperAdminThe best admin interface framework for Flask. With scaffolding for MongoEngine, Django and SQLAlchemy.项目地址: https://gitcode.com/gh_mirrors/fl/Flask-SuperAdmin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表