django-rest框架过滤器(查询)是否可以使用django html进行工作;搜索“;服务器第一页的按钮?

django-rest框架过滤器(查询)是否可以使用django html进行工作;搜索“;服务器第一页的按钮?,django,html,django-templates,django-rest-framework,Django,Html,Django Templates,Django Rest Framework,在django过滤器中,我们可以像 例如:http:127…/api/?first\u name=kiran (给出第一个名称为kiran的输出) 或 http:127.0.0.1:8000/api/?last\u name=Prajapti 视图.py from rest_framework.viewsets import ModelViewSet from rest_framework import filters from WBCIS.serializers import WbcisSer

在django过滤器中,我们可以像 例如:http:127…/api/?first\u name=kiran (给出第一个名称为kiran的输出)

或 http:127.0.0.1:8000/api/?last\u name=Prajapti

视图.py

from rest_framework.viewsets import ModelViewSet
from rest_framework import filters
from WBCIS.serializers import WbcisSerializer
from WBCIS.models import Wbcis 


from rest_framework import generics
import django_filters.rest_framework

class WbcisViewSet(ModelViewSet):
    queryset = Wbcis.objects.all()
    model=Wbcis
    serializer_class = WbcisSerializer
    filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)

    filter_fields = ('first_name','last_name',)
所以,当我们运行服务器时 http:/api/?first\u name=Kiran和last\u name=Prajapati
查询工作并提供准确的输出:

{
    "_id" : ObjectId("58747e0b1a39f11292539da0"),
    "first_name" : "kiran",
    "last_name" : "prajapati",
}
所以,现在,我想编写相同的查询,但使用django html按钮[名字][姓氏][搜索]

因此,我们填写将运行查询的first_name和last_name,并给出准确的输出:

例如:当我们运行服务器时 http:127.0.0.1:8000/

html页面显示

[名字][姓氏][搜索按钮]

然后我们可以在这里输入, first_name=Kiran,last_name=Prajapati[搜索]

然后它将以json格式显示我们的数据, 相同的查询http:.//api/?first\u name=Kiran&last\u name=Prajapati

输出:

{
    "_id" : ObjectId("58747e0b1a39f11292539da0"),
    "first_name" : "kiran",
    "last_name" : "prajapati",
}

当我们使用django html按钮而不是键入http:127./api/?first\u name=kiran&last\u name=Prajapati时,您能告诉我如何获取json格式的数据吗?

是的,您可以使用APIView或APIViewset而不是ModelViewset。以下是使用APIView的示例:

from rest_framework.views import APIView
from rest_framework import serializers
from rest_framework.response import Response

class WbcisViewSet(APIView):
    def get(self, request):
        queryset = Wbcis.objects.filter(first_name=request.GET.get('firstname'))
        data = serializers.serialize('json', list(querySet), fields=('firstname','id'))
        return Response(data)

是的,您可以使用APIView或APIViewset代替ModelViewset。以下是使用APIView的示例:

from rest_framework.views import APIView
from rest_framework import serializers
from rest_framework.response import Response

class WbcisViewSet(APIView):
    def get(self, request):
        queryset = Wbcis.objects.filter(first_name=request.GET.get('firstname'))
        data = serializers.serialize('json', list(querySet), fields=('firstname','id'))
        return Response(data)

首先,通过post方法的hep获取数据。 url就像

url('^search/(?P<firstname>.+)/$', Search.as_view({'post': 'search'}), name='search')
而queryset是

obj = ModelName.__Meta.filter(first_name__startwith=request.data['firstname'])
return obj
鉴于

class SearchViewSet(viewsets.ModelViewSet):
    def search(self, request):
       obj = ModelName.objects.filter(first_name__startwith=request.data['firstname'])
       serializer = SearchSerializer(obj, many=True)
       return Response(serializer.data, status=200)

首先,通过post方法的hep获取数据。 url就像

url('^search/(?P<firstname>.+)/$', Search.as_view({'post': 'search'}), name='search')
而queryset是

obj = ModelName.__Meta.filter(first_name__startwith=request.data['firstname'])
return obj
鉴于

class SearchViewSet(viewsets.ModelViewSet):
    def search(self, request):
       obj = ModelName.objects.filter(first_name__startwith=request.data['firstname'])
       serializer = SearchSerializer(obj, many=True)
       return Response(serializer.data, status=200)

所以我们可以在第一页“serach button”中找到名字:?所以,如果我键入:kiran,它将以json格式提供数据?当您在html中使用表单提交单击搜索按钮时,您必须点击此api。它将提供json输出。但是如何创建第一页html,我们可以在其中键入first_name,然后运行此查询?因此,我们可以在第一页的“serach button”中找到first_name:?所以,如果我键入:kiran,它将以json格式提供数据?当您在html中使用表单提交单击搜索按钮时,您必须点击此api。它将提供json输出。但是如何创建第一页html,我们可以在其中键入first_name,然后运行此查询?需要使用搜索按钮创建html文件,对吗?那么查询将如何工作?搜索按钮在哪里添加urloh,这样就不需要创建html?雅利安,这需要吗?queryset是obj=ModelName.\uuuu Meta.filter(first\u name\uuuu startwith=request.firstname)return objgive me错误:SyntaxError:“return”在函数外部,需要使用搜索按钮创建html文件,对吗?那么查询将如何工作?搜索按钮在哪里添加urloh,这样就不需要创建html?雅利安,这需要吗?queryset是obj=ModelName.\uuuu Meta.filter(first\u name\uuuu startwith=request.firstname)return objgive me错误:SyntaxError:“return”在函数外部