利用flask_admin.contrib.sqla实现数据表的筛选功能
发布时间:2023-12-27 13:30:39
使用flask_admin.contrib.sqla可以很方便地实现数据表的筛选功能。它基于Flask-Admin插件,可以让我们轻松地使用SQLAlchemy进行数据库操作。
首先,我们需要在项目中安装Flask-Admin和SQLAlchemy插件。可以通过pip来安装它们:
pip install flask-admin pip install flask-sqlalchemy
接下来,我们需要创建一个Flask应用,并初始化SQLAlchemy:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
# 定义数据模型
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
def __repr__(self):
return '<User %r>' % self.username
# 创建数据库表
db.create_all()
然后,我们需要创建一个管理后台的视图,使用flask_admin.contrib.sqla的ModelView类来管理数据表。在这个视图中,我们可以设置筛选器字段,以便用户可以通过这些字段来筛选数据。
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
admin = Admin(app, name='后台管理系统', template_mode='bootstrap3')
class UserView(ModelView):
column_list = ('id', 'username')
column_searchable_list = ('username',)
column_filters = ('username',)
admin.add_view(UserView(User, db.session))
在以上代码中,我们创建了一个UserView类,继承自ModelView类,并传入User模型和数据库会话实例。然后,我们设置了column_list属性,用于显示在列表中的字段;column_searchable_list属性,用于在列表上方添加搜索框;column_filters属性,用于添加筛选器字段。
最后,我们将UserView类添加到管理后台中。
if __name__ == '__main__':
app.run(debug=True)
现在,我们可以运行我们的应用,并在浏览器中访问http://localhost:5000/admin来查看管理后台。
在管理后台中,我们可以看到User数据表的列表视图。在列表上方有一个搜索框,我们可以通过输入用户名关键字来筛选数据。另外,还有一个筛选器字段,我们可以点击它并选择其中的值来筛选数据。
总结起来,利用flask_admin.contrib.sqla实现数据表的筛选功能非常简单。只需创建一个继承自ModelView类的视图,并设置筛选器字段即可。通过这个插件,我们可以快速地实现一个功能强大的管理后台。
