fastapi 如何方便的处理大于小于的 CRUD 操作?

Django 有一个 django-filter

如果前端需要 范围 select 某个字段,可以在 Filter 中使用 lookup_expr 实现

比如 url: /?company=1629,55,8,14,20,1296,1447,1591,1355&confirm_start=2023-01-31&confirm_end=2023-02-01&score_min=0&score_max=99999

我只要这么定义代码

class SeriesFilter(filters.FilterSet):
    company = ListFilter(field_name='company_id')  # , lookup_expr='icontains')
    confirm_start = DateTimeFilter(field_name='confirm_at', lookup_expr='gte')
    confirm_end = DateTimeFilter(field_name='confirm_at', lookup_expr='lte')
    created_start = DateTimeFilter(field_name='created_at', lookup_expr='gte')
    created_end = DateTimeFilter(field_name='created_at', lookup_expr='lte')
    score_min = filters.NumberFilter(
        field_name='rating_score', lookup_expr='gte')
    score_max = filters.NumberFilter(
        field_name='rating_score', lookup_expr='lte')

drf 就会帮我自动转成 sql 的 where 子条件, where company in (1629,55,8,14,20,1296,1447,1591,1355) and confirm_at > '2023-01-31' and confirm_at < '2023-02-01' and score > 0 and score < 99999

感觉这样很方便

fastapi 下有什么方法可以类似这样便捷实现呢?

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题