STUNUM

面有萌色,胸有丘壑。心有猛虎,细嗅蔷薇。

嗨,我是王鑫 (@stunum),一名 Python 开发者。


Python web开发,后端以Django框架为主,前端使用Vue.js...

rest_framework中django-filter的In查询操作

IN 操作:

举个例子:

想要查询tb_student表中ID为1、3、5、6的学生的name、class、score的信息

//原始sql语句:
SELECT name,class,score FROM tb_student WHERE id in (1,3,5,6);

在使用 rest_framework 的筛选时:

//django_filters的写法
import django_filters

#继承BaseInFilter以及想要做IN操作的字段类型,比如NumberFilter、CharFilter等
class NumberInFilter(django_filters.BaseInFilter,django_filters.NumberFilter):
    pass

class StudentFilter(django_filters.rest_framework.FilterSet):
    ...
    ser_id=NumberInFilter(field_name='utype',lookup_expr='in')
    ...
    class Meta:
    model = Student
    fields = [...,'ser_id',...]
最近的文章

rest_framework源码之APIView

APIView 类中很最要的一个方法:dispatch该方法中有两个需要注意的关键点: request 替换 http 请求映射类中的对应名称的方法def dispatch(self, request, *args, **kwargs): self.args = args self.kwargs = kwargs request = self.initialize_request(request, *args, **kwargs) self.request = ...…

水滴石穿继续阅读
更早的文章

supervisor守护程序

supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。安装supervisor$ pip install supervisor使用supervisor1、 生成默认的配置文件$ echo_su...…

水滴石穿继续阅读