首页 > 解决方案 > query.filter 代码在 Flask-AppBuilder 视图中的什么位置?

问题描述

假设我们在 Flask-AppBuilder 中有以下简单视图:

class Table_AView(ModelView):
    datamodel = SQLAInterface(Table_A)
    label_columns = {'Field_A':'A'}
    list_columns = ['Field_A']

我们希望列出所有数据的列Field_A返回等于“某些文本”的所有字段。

假设下面的查询是正确的,我们将在上面的代码中放置这行代码以实现所需的结果?

result = session.query(Table_A).filter_by(Field_A = 'some text').all()

由于实现是使用 Flask-appbuilder,因此应用于烧瓶和 sqlalchemy 的常用解决方案似乎并没有以相同的方式实现。

标签: pythonflaskflask-sqlalchemyflask-appbuilder

解决方案


经过大量挖掘后,它flask-appbuilder使用了自己的过滤器,以使您能够过滤视图。

所有的类都在 GitHub 上引用: Flask Filter Classes List

还要注意这里 FilterEqual之间的区别:FilterEqual 和 FilterEqualFunction 之间有什么区别?FilterEqualFunction

对于其他自定义和 Flask-appbuilder 的第一个调用端口,请直接访问API 参考,您将在其中找到几个过滤器类的示例

本质上它非常简单。在您想要过滤views.py的类中的代码中,只需添加:ModelView

base_filters = [['field_column_name', FilterEqual, 'abc']]

这只会显示field_column_name变量等于 的行abc

希望这对某人有所帮助,因为我花了将近(叹息)两个星期才弄清楚...


推荐阅读