flask_admin.contrib.sqla的常用功能介绍
发布时间:2023-12-27 13:26:40
Flask-Admin是一个为Flask应用程序生成管理界面的扩展包。其中的flask_admin.contrib.sqla模块专门用于与SQLAlchemy集成,提供了一些常用的功能以简化数据库管理。
下面是flask_admin.contrib.sqla模块中一些常用功能的介绍以及使用示例:
1. ModelView:用于显示和管理数据库模型的视图类。可以通过继承ModelView类来自定义视图。
from flask_admin.contrib.sqla import ModelView
# 自定义一个User模型的视图类
class UserView(ModelView):
column_list = ['id', 'username', 'email'] # 指定要显示的列
# 过滤属性,只显示username为admin的用户
def get_query(self):
return self.session.query(self.model).filter_by(username='admin')
# 搜索属性,只搜索username和email字段
def get_search_results(self, query, search_terms):
return query.filter(db.or_(
self.model.username.like(search_terms),
self.model.email.like(search_terms)
))
# 创建User模型的视图
admin.add_view(UserView(User, db.session))
2. ModelView中的列和过滤器配置:可以指定在视图中显示的列以及过滤器的配置。
from flask_admin.contrib.sqla import ModelView
# 自定义一个User模型的视图类
class UserView(ModelView):
# 指定要显示的列和过滤器
column_list = ['id', 'username', 'email']
column_filters = ['username', 'email']
# 创建User模型的视图
admin.add_view(UserView(User, db.session))
3. ModelView中的编辑表单和创建表单配置:可以自定义编辑和创建表单的字段和布局。
from wtforms import TextAreaField
from flask_admin.contrib.sqla import ModelView
# 自定义一个Post模型的视图类
class PostView(ModelView):
# 指定要显示的列
column_list = ['id', 'title', 'content']
# 编辑表单字段和布局
form_columns = ('title', 'content', 'author')
form_overrides = dict(content=TextAreaField)
# 创建表单字段和布局
create_form_columns = ('title', 'content', 'author')
create_form_overrides = dict(content=TextAreaField)
# 创建Post模型的视图
admin.add_view(PostView(Post, db.session))
4. ModelView中的验证器配置:可以自定义验证器,对输入的数据进行验证。
from wtforms import validators
from flask_admin.contrib.sqla import ModelView
# 自定义一个User模型的视图类
class UserView(ModelView):
# 自定义验证器,验证username字段不能包含特殊字符
form_args = {
'username': {'validators': [validators.Regexp(r'^[\w]+$')]}
}
# 创建User模型的视图
admin.add_view(UserView(User, db.session))
以上是flask_admin.contrib.sqla模块中一些常用的功能介绍和使用例子。通过使用这些功能,我们可以更方便地管理和操作数据库模型。使用Flask-Admin可以快速搭建出一个强大且易用的后台管理界面。
