欢迎访问宙启技术站
智能推送

使用flask_admin.contrib.sqla实现数据表的排序功能

发布时间:2023-12-27 13:31:53

Flask-Admin 是一个功能强大的 Flask 扩展,用于快速构建可管理的 Web 应用程序。它提供了一个易于使用的界面,用于管理应用程序的数据库模型。其中 flask_admin.contrib.sqla 模块为 Flask-Admin 提供了对 SQLAlchemy 数据库模型的支持。

要实现数据表的排序功能,我们需要完成以下几个步骤:

1. 创建一个基于 Flask-Admin 的管理界面,并注册需要管理的数据库模型。

2. 在需要进行排序的列上添加排序功能。

下面是一个使用 Flask-Admin 扩展实现数据表排序功能的示例:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
app.config['SECRET_KEY'] = 'mysecretkey'  # 设置一个密钥,用于加密表单数据
db = SQLAlchemy(app)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))
    age = db.Column(db.Integer)
    created_at = db.Column(db.DateTime, default=db.func.now())


admin = Admin(app)


class UserAdmin(ModelView):
    column_sortable_list = ('name', 'age', 'created_at')  # 设置可排序的列


admin.add_view(UserAdmin(User, db.session))


if __name__ == '__main__':
    db.create_all()
    app.run(debug=True)

在上面的例子中,我们创建了一个简单的数据库模型 User,包含了 nameagecreated_at 三个列。然后,我们创建了一个 UserAdmin 类,继承自 ModelView,并设置了 column_sortable_list 属性,用于指定需要排序的列。

最后,我们将 UserAdmin(User, db.session) 注册到 Admin 扩展中,即可在管理员界面上显示和管理 User 模型。

启动应用程序后,访问 http://localhost:5000/admin/user/ 即可看到用户数据表的排序功能。您可以点击表头上的箭头,对对应的列进行升序或降序排序。

总结来说,使用 flask_admin.contrib.sqla 可以很方便地实现数据表的排序功能。我们只需在需要排序的列上添加相应的设置即可。另外,Flask-Admin 还提供了其他丰富的功能,如筛选、分页、搜索等,使数据管理更加便捷。