如何从自制的restfull_api

时间:2019-05-12 10:41:26

标签: json django django-rest-framework django-views

我试图通过Y / views.py从我的API中检索同一项目中另一个应用程序的信息。我收到以下错误([WinError 10061])。虽然,我能够通过json_main.js执行get / post / put。感谢所有在旅途中支持我的人。请阅读已经工作的内容。作为另一个问题,我会问为什么不能直接通过我的model / sqlite数据库检索数据。

我已经创建了以下内容: X /视图+ X / Template.html。 X / Views将信息从后端呈现到X / template.html。在此模板中,有一个JSON脚本(正在运行),该脚本可在图片点击时执行POST / GET / PUT到API(正在运行)。

该函数最终在API / Bestellingen中产生新记录。现在,应该在Y / view的views.py中检索通过此JSON函数存储的信息(包括令牌认证; csrf)。我已经创建了一个示例字典。呈现到Y / template.html

我尝试了几种JSON请求方法(coreapi,urllib2,urllib3,请求),但仍然收到前面提到的错误。如前所述:JSON.js脚本确实有效。通过POSTMAN进行相同的操作也可以。

由于我通过.js和邮递员执行相同的操作,因此我非常确定变量(令牌,标头和请求)应该可以。

我将显示一些已经正常工作的代码片段。之后,我将显示似乎无效的代码。

来自X / views.py-> X / template.html的信息

return render(request, 'smaakjes/smaakjes.html', {'Drank': super_dict})

X / Template.html(请参见onclick =“”)

{% for key, value_list in Drank.items %}
<img onclick="PostImageDetails(this)" style="margin: 0 auto;" src="{{   value }}" id="{{ value }}">

JSON.js(有效),将信息发送到http:127:0:0:0:8000 / api / bestellingen。我可以通过API视图查看存储的信息。

xmlhttp.send(JSON.stringify({'url':imageSrc, 'username': imageId}))

Y / views.py->将信息呈现到Y / template.html(作品)

def BestellingenDashboard(request):

Data = {'iets': '1'}
return render(request, 'homepage.html', {'bestellingen' : Data})

一旦信息已存储在API / bestellingen中,我想检索整个json字典。通过python Y / Views.py并将其存储在上面的“数据”中(这很容易:))。有人知道我在做什么错吗?邮递员为什么工作?我是否缺少标题或其他内容?我认为,从您自己的API检索数据应该非常容易:D

from django.http import HttpResponse
from django.shortcuts import render
from api.models import Bestellingen
import json
import secrets
import requests

URL = "http://127.0.0.1:8000/api/bestellingen/"
data_json = json.dumps(data)
payload = {'json_payload': data_json}

r = requests.get(url=URL, headers={'Content-Type': 'application/json', 'token' : secrets.token_hex(40)}, json=payload)
a = r.json()
print(a)

def BestellingenDashboard(request):

    Data = {'iets': '1'}
    return render(request, 'homepage.html', {'bestellingen' : Data})

如您所见,大多数都在工作(api,端点,apiview,从XX.html,X.html-> API渲染信息。我现在想在Y.views中获取信息,以便我可以使用它Y / template.html中的信息

0 个答案:

没有答案