首页 > 其他分享 >django-filter用法

django-filter用法

时间:2023-03-15 15:45:28浏览次数:30  
标签:DomainName models 用法 filter filters import django class

一. 环境准备

pip install Django==2.2 -i https://pypi.douban.com/simple
pip install djangorestframework==3.10 -i https://pypi.douban.com/simple
pip install django-filter==2.3.0 -i https://pypi.douban.com/simple

在Django的项目配置文件中安装并配置django_filters应用

INSTALLED_APPS = [
    ...
    'django_filters',
]

REST_FRAMEWORK = {
   # 过滤器默认后端
    'DEFAULT_FILTER_BACKENDS': (
           'django_filters.rest_framework.DjangoFilterBackend',),
}

二. 基本用法

1. models.py
class DomainName(models.Model):
    id = models.CharField(max_length=30, primary_key="true")
    name = models.CharField(max_length=50, null=False)
    email = models.CharField(max_length=50, null=False, default="")
2. serializers.py
from rest_framework import serializers
from .models import DomainName

class DomainSerializer(serializers.ModelSerializer):
  class Meta:
    model = DomainName
    fields = "__all__"
3.filters.py
from django_filters import rest_framework as filters
from .models import DomainName

class DomainFilter(filters.FilterSet):
    class Meta:
        model = DomainName
        fields = ['name']
4.views.py
from rest_framework.viewsets import ModelViewSet
from .models import DomainName
from .serializers import DomainSerializer
from .filters import DomainFilter

class DomainViewSet(ModelViewSet):
  queryset = DomainName.objects.all()
  serializer_class = DomainSerializer
  filter_class = DomainFilter
5.urls.py
from rest_framework.routers import DefaultRouter
from .views import DomainViewSet, domain_list
from django.urls import path

#SimpleRouter或者DefaultRouter创建的URL将附加尾部斜杠,参数trailing_slash=False可以取消尾部斜杠
router = DefaultRouter()

router.register('domaininfo', DomainViewSet, basename='domainList')

urlpatterns=[]+router.urls

然后就可以使用http://127.0.0.1:8000/aliyun/domaininfo/?name=iwos.com.cn来访问对应域名的详情。

其中aliyun是app的名字,这里没写项目中注册的URL

其他用法可以参考https://zhuanlan.zhihu.com/p/110060840

标签:DomainName,models,用法,filter,filters,import,django,class
From: https://www.cnblogs.com/regit/p/17218764.html

相关文章

  • VS CODE运行DJango项目中遇到:{无法加载文件 D:\code\python_project\virtualenv\e
    如题在vscode中在切换python解释器(输入之前创建的虚拟环境的解释器路径)后,打开控制板会报一下错误:无法加载文件D:\code\python_project\virtualenv\env-py3.8.2\Scripts......
  • Python range() 函数用法
    Python3range()返回的是一个可迭代对象(类型是对象),而不是列表类型,所以打印的时候不会打印列表函数语法range(start,stop[,step])参数说明:start:计数从start......
  • mysql merge update_SQL中批量更新 merge into用法
     从备份表中更新字段到正式表中,使用UPDATE批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用MERGEINTO代替UPDATE执行批量更新,会提升执行效率。......
  • nginx中proxy_pass各种用法详解
    代理转发规则nginx中配置location代理转发规则的时候不同写法对应不同转发规则。如果proxy_pass使用了URI,当传送请求到后端服务器时,规范化以后的请求路径与配置中的路径......
  • .NET Core 中的筛选器 Filter
    官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/filters?view=aspnetcore-5.0通过使用ASP.NETCore中的筛选器,可在请求处理管道中的特定阶段之......
  • java8 Optional使用 stream filter多级过滤
    java8Optional使用streamfilter多级过滤packagecom.example.core.mydemo.java8;publicclassMyModel{privateStringcouponCode;privateIntegeror......
  • 「Go」 通过一个案例解释清楚 interface 的用法和注意事项
    Golang接口(interface)简介和入门使用如果在公众号文章发现状态为已更新,建议点击查看原文查看最新内容。状态:未更新原文链接:https://typonotes.com/posts/2......
  • selenium---浏览器F12的正确用法
    前言测试过程中经常会进行抓包来查看一些错误内容,判断是前端的问题还是后端的问题,常见的抓包工具有Fiddler,Charles,还有web端的F12。今天安静来介绍下如何通过F12进行抓包......
  • Filter+Listener
    11.Filter(重点)Filter:过滤器,用来过滤网站的数据;处理中文乱码登录验证….Filter开发步骤:导包编写过滤器导包不要错;<?xmlversion="1.0"encoding="UTF-8"......
  • Django基于一对多的正向查询和反向查询
    1.正向查询obj=models.User.objects.get(name='longge')name=obj.group.nameprint(name)#肖邦组2.反向查询"""反向查询"""obj=models.Group.objects......