您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:django filters实现数据过滤的示例代码

51自学网 2021-10-30 22:41:01
  python
这篇教程django filters实现数据过滤的示例代码写得很实用,希望能帮到您。

常用

当前循环. 作用
default 数据为空时设置默认值
length 取变量长度
filesizeformat 文件大小转成可读
slice 从指定位置到指定位切片
date datetime取到的时间,转成指定格式
safe 防止XSS攻击、加上safe才能传标签
truncatechars 取摘显示一段剩下的…

例子

{#格式   值|函数#}{#    如果没有值,那么使用默认值#}    <p>{{ bucunzai|default:'空的哦' }}</p>{#    取出变量长度#}    <q>{{ name }}--{{ name|length }}</q>{#      文件大小转换成可读型  kb 自动转成bm、g、tb#}    <p>文件大小{{ file_size|filesizeformat }}</p>{#    切片 从指定位置到指定位 ,例:第3位到-2位#}    <p>切片:{{ slice_str|slice:'3:-2' }}</p>{#    把datetime取到的时间,转成指定格式#}    <p>格式化:{{ now|date:'Y-m-d H:i:s' }}</p>{#    如果后端内容包含标签,那么加上safe 才能转义(防止用户直接加script标签作弊)防XSS攻击#}    <p>{{ h_html|safe }}</p>{#    取摘要只显示一段,指定取长度后面...例:120个字符 #}    <p>长文本:{{ p_str|truncatechars:12 }}</p>

1、视图

class UserView(ListAPIView):    """用户列表"""    queryset = User.objects.all()    serializer_class = UserSerializer    filter_backends = (DjangoFilterBackend,)    filter_class = UserMonthFilter  # 指定过滤类

2、过滤类

class RobotFilter(django_filters.FilterSet):    # 使用过滤:URL?created_start_time=2020_01-20&created_end_time=2020_01-21    robot_id = django_filters.CharFilter(field_name='id')    machine_id = django_filters.CharFilter(field_name='machine_id')    city = django_filters.CharFilter(field_name='city')    # lookup_expr(可选)为判断条件,field_name(必选)为模型类属性,created_time查询字符串    created_time= django_filters.CharFilter(field_name='created_at', lookup_expr='startswith')    created_start_time = django_filters.DateTimeFilter(field_name='created_at', lookup_expr='gt')    created_end_time = django_filters.DateTimeFilter(field_name='created_at', lookup_expr='lt')    problem_isnull = django_filters.BooleanFilter(field_name='problem', lookup_expr='isnull')    name = django_filters.CharFilter(lookup_expr='iexact')  # iexact表示精确匹配, 并且忽略大小写    author = django_filters.CharFilter(lookup_expr='icontains') #icontains表示模糊查询(包含),并且忽略大小写    price = django_filters.NumberFilter(look_expr='exact')  #exact表示精确匹配    task_res_state = django_filters.CharFilter(method="get_task_res_state")        def get_task_res_state(self, queryset, *arg):        if str(arg[1]) == "0":  # arg[1]=('task_res_state', '0')            task_res = (1, 2, 3)        else:            task_res = (0, 4, 5, 6)        print(task_res)        queryset = queryset.filter(task_res__in=task_res)        return queryset    class Meta:        model = Robot        fields = ['robot_id', 'machine_id', "city", "created_start_time", "created_end_time", 'created_time',                  'firmware_version', 'state', "robot_type", "hardware_version", "exist_map", 'task_res_state']

到此这篇关于django filters实现数据过滤的示例代码的文章就介绍到这了,更多相关django filters 数据过滤 内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


pytorch 禁止/允许计算局部梯度的操作
pytorch_detach 切断网络反传方式
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。