Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 访问外部API的视图集(弹性搜索)_Django_Django Rest Framework - Fatal编程技术网

Django 访问外部API的视图集(弹性搜索)

Django 访问外部API的视图集(弹性搜索),django,django-rest-framework,Django,Django Rest Framework,所以我试图通过Django使用ElasticSearchAPI作为视图集 这是我的尝试,不起作用。我没有发现错误,但是URL实际上甚至没有出现,这让我觉得我的视图集坏了 服务.py 导入json 导入请求 def get_items(id, title): url = 'http://localhost:9200/_search' params = json.loads(request.GET.body) r = requests.get('http://localho

所以我试图通过Django使用ElasticSearchAPI作为视图集

这是我的尝试,不起作用。我没有发现错误,但是URL实际上甚至没有出现,这让我觉得我的视图集坏了

服务.py 导入json 导入请求

def get_items(id, title):
    url = 'http://localhost:9200/_search' 
    params = json.loads(request.GET.body)
    r = requests.get('http://localhost:9200/_search', params=params)
    items = r.json()
    return items['results']
views.py

import services

class ElasticViewSet(viewsets.ViewSet):
    def list(self,request):
        item_list = get_items()
        return item_list
        pass
url.py

from api.views import ElasticViewSet
router.register(r'elastic', ElasticViewSet, base_name='Elastic')

构造
get\u items
方法以返回值

import json
import requests

def get_items(request):
    url = 'http://localhost:9200/_search' 
    params = json.loads(request.body)
    r = requests.get('http://localhost:9200/_search', params=params)
    items = r.json()
    return items['results'] # handle exceptions for fail proof design
并在视图中调用方法
get\u items
, 至于裸露的骨头,你可以这样做

from rest_framework.response import Response
from rest_framework import viewsets

class ElasticViewSet(viewsets.ViewSet):
    def list(self, request):
        item_list = get_items(request)
        return Response(data=item_list)

构造
get\u items
方法以返回值

import json
import requests

def get_items(request):
    url = 'http://localhost:9200/_search' 
    params = json.loads(request.body)
    r = requests.get('http://localhost:9200/_search', params=params)
    items = r.json()
    return items['results'] # handle exceptions for fail proof design
并在视图中调用方法
get\u items
, 至于裸露的骨头,你可以这样做

from rest_framework.response import Response
from rest_framework import viewsets

class ElasticViewSet(viewsets.ViewSet):
    def list(self, request):
        item_list = get_items(request)
        return Response(data=item_list)

仍然没有成功。谢谢,但它仍然没有显示为URL的
elastic
。DRF甚至没有列出它。我已经更新了我的OP以包含我的URL。它是真实的视图吗?是发布问题的视图吗?仍然没有成功。谢谢,但它仍然没有显示为URL的
elastic
。DRF甚至没有列出它。我已经更新了我的OP以包含我的URL。它是真实的视图吗?是与问题一起发布的视图吗?您应该花一些时间阅读关于Django Rest框架的文档。你不应该在视图集中使用get,不应该使用render,你的代码没有定义item_list…感谢你提到这些文档,我已经花了好几个小时阅读了它们,但没有让它们正常工作。请提供答案。您应该花一些时间阅读关于Django Rest框架的文档。你不应该在视图集中使用get,不应该使用render,你的代码没有定义item_list…感谢你提到这些文档,我已经花了好几个小时阅读了它们,但没有让它们正常工作。请提供答案。