helper -- 字段构造模块

helper 模块源代码在文件 applications/common/helper.py 下,主要集结了一些常用的字段构造方法。

class helper.ModelFilter

ORM 多条件查询构造器,支持多种查询条件组合。

示例:

from applications.common.helper import ModelFilter
mf = ModelFilter()
mf.exact('name', 'John')  # 添加精确匹配条件
mf.vague('email', 'example.com')  # 添加模糊匹配条件
query = User.query.filter(mf.get_filter(User))
filter_field

存储字段过滤条件的字典。

filter_list

存储最终的过滤条件列表。

__init__()

初始化过滤条件存储字典和列表。

escape_like(value: str, escape_char: str = '\\')

转义LIKE查询中的特殊字符(%, _ 和转义字符本身)

参数:
  • value -- 需要转义的原始字符串

  • escape_char -- 转义字符(默认反斜杠)

返回:

转义后的安全字符串

exact(field_name, value)

添加精确匹配条件。

参数:
  • field_name -- 模型字段名称。

  • value -- 匹配的值。

neq(field_name, value)

添加不等于条件。

参数:
  • field_name -- 模型字段名称。

  • value -- 不匹配的值。

greater(field_name, value)

添加大于条件。

参数:
  • field_name -- 模型字段名称。

  • value -- 大于的值。

less(field_name, value)

添加小于条件。

参数:
  • field_name -- 模型字段名称。

  • value -- 小于的值。

vague(field_name, value: str)

添加模糊匹配条件(左右模糊)。

参数:
  • field_name -- 模型字段名称。

  • value -- 模糊匹配的值。

left_vague(field_name, value: str)

添加左模糊匹配条件。

参数:
  • field_name -- 模型字段名称。

  • value -- 左模糊匹配的值。

right_vague(field_name, value: str)

添加右模糊匹配条件。

参数:
  • field_name -- 模型字段名称。

  • value -- 右模糊匹配的值。

contains(field_name, value: str)

添加包含条件。

参数:
  • field_name -- 模型字段名称。

  • value -- 包含的值。

between(field_name, value1, value2)

添加范围查询条件。

参数:
  • field_name -- 模型字段名称。

  • value1 -- 范围起始值。

  • value2 -- 范围结束值。

get_filter(model: db.Model)

获取最终的 SQLAlchemy 过滤条件。

参数:

model -- SQLAlchemy 模型类。

返回:

返回组合后的过滤条件。