django-rest框架过滤器(查询)是否可以使用django html进行工作;搜索“;服务器第一页的按钮?
在django过滤器中,我们可以像 例如:http:127…/api/?first\u name=kiran (给出第一个名称为kiran的输出) 或 http:127.0.0.1:8000/api/?last\u name=Prajapti 视图.pydjango-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
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”在函数外部