Flask-Admin 后台管理系统搭建教程:用户、新闻和评论管理
导入需要的模块和类
from flask_admin import Admin, AdminIndexView
from app import app
from flask_admin.contrib.sqla import ModelView
from flask import current_app, redirect, url_for, request
from models import db, User, XinWen, PingLun
# 自定义 ModelView 类,用于处理用户访问权限
class MyModelView(ModelView):
def inaccessible_callback(self, name, **kwargs):
# 如果用户没有访问权限,重定向到登录页面
return redirect(url_for('login', next=request.url))
# 自定义用户管理页面
class MyUser(MyModelView):
column_labels = dict(
name='账号',
email='邮箱',
password='密码'
)
column_searchable_list = ('name', 'email',)
# 自定义新闻管理页面
class MyXinWen(MyModelView):
column_labels = dict(
title='标题',
media = '来源',
url = '链接',
top_time = '发布时间',
content = '内容',
xinwen_datetime = '写入时间',
pinglun='关联评论表'
)
column_searchable_list = ('title', 'media')
# 自定义评论管理页面
class MyPingLun(MyModelView):
column_labels = dict(
content = '评论内容',
)
column_searchable_list = ('content', )
'在 Flask 中,提供了一个扩展模块帮助我们快速搭建一个后台管理系统,这个模块就是--Flask-Admin。
首先需要运行下面的代码来初始化这个模块。'
# 创建一个后台管理系统,使用 bootstrap3 模板,自定义基础模板和导航栏,初始化 Flask-admin
admin = Admin(app=app, name='后台管理系统', template_mode='bootstrap3', base_template='admin/mybase.html', index_view=AdminIndexView(
name='导航栏',
template='admin/welcome.html',
url='/admin'
))
'使用 admin.add_view 方法将 model 视图添加进来,分别添加 User,XinWen, PinLun 表,
这些表是之前就通过 Flask-SQLAlchemy 创建好的。'
# 添加用户管理页面
admin.add_view(MyUser(User, db.session, name='用户管理'))
# 添加新闻管理页面
admin.add_view(MyXinWen(XinWen, db.session, name='新闻管理'))
# 添加评论管理页面
admin.add_view(MyPingLun(PingLun, db.session, name='评论管理'))
# 如果当前文件为主程序,运行 Flask 应用程序
if __name__ == '__main__':
app.run(debug=True)
这段代码实现了一个后台管理系统,使用 Flask-Admin 扩展模块来快速搭建。通过自定义 ModelView 类来处理用户访问权限,自定义用户、新闻和评论管理页面,并使用 admin.add_view 方法将这些页面添加到后台管理系统中。最后,如果当前文件为主程序,则运行 Flask 应用程序。
代码功能说明:
- 导入必要的模块和类,包括 Flask-Admin 扩展模块、数据库模型等。
- 自定义 ModelView 类,用于处理用户访问权限,当用户没有访问权限时,重定向到登录页面。
- 自定义用户、新闻和评论管理页面,分别继承 MyModelView 类并设置相应的列标签、可搜索列等。
- 使用 admin.add_view 方法将自定义页面添加到后台管理系统中。
- 最后运行 Flask 应用程序,启动后台管理系统。
使用方法:
- 安装 Flask-Admin 扩展模块:
pip install flask-admin - 创建数据库模型(User, XinWen, PingLun)。
- 复制代码到你的 Flask 项目中并修改相应的配置信息。
- 运行 Flask 应用程序,访问
/admin路径即可进入后台管理系统。
注意:
- 代码中的
app是你的 Flask 应用程序实例。 - 代码中的
db是你的 SQLAlchemy 数据库实例。 - 代码中的
User,XinWen,PingLun是你的数据库模型。 - 代码中的
admin/mybase.html和admin/welcome.html是你自定义的模板文件。
通过以上步骤,你就可以快速搭建一个功能完善的后台管理系统,用于管理用户、新闻和评论等内容。
原文地址: https://www.cveoy.top/t/topic/jCsV 著作权归作者所有。请勿转载和采集!