导入需要的模块和类

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 应用程序,启动后台管理系统。

使用方法:

  1. 安装 Flask-Admin 扩展模块:pip install flask-admin
  2. 创建数据库模型(User, XinWen, PingLun)。
  3. 复制代码到你的 Flask 项目中并修改相应的配置信息。
  4. 运行 Flask 应用程序,访问 /admin 路径即可进入后台管理系统。

注意:

  • 代码中的 app 是你的 Flask 应用程序实例。
  • 代码中的 db 是你的 SQLAlchemy 数据库实例。
  • 代码中的 User, XinWen, PingLun 是你的数据库模型。
  • 代码中的 admin/mybase.htmladmin/welcome.html 是你自定义的模板文件。

通过以上步骤,你就可以快速搭建一个功能完善的后台管理系统,用于管理用户、新闻和评论等内容。

Flask-Admin 后台管理系统搭建教程:用户、新闻和评论管理

原文地址: https://www.cveoy.top/t/topic/jCsV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录