所以我试图通过Django将我的ElasticSearch api用作视图集。
这是我的尝试,但不起作用。我没有收到错误,但实际上甚至没有显示URL,这让我认为我的视图集已经破坏了
services.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
urls.py
from api.views import ElasticViewSet
router.register(r'elastic', ElasticViewSet, base_name='Elastic')
答案 0 :(得分:0)
构建get_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_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)