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 模型类。
- 返回:
返回组合后的过滤条件。