【发布时间】:2021-02-20 01:47:39
【问题描述】:
我从我的导师那里得到了帮助来弄清楚 GET 命令。我正在努力使用 POST 命令。
-查看-
from django.shortcuts import render
from django.shortcuts import redirect
from django.contrib import messages
import json
import requests
from ast import literal_eval
from django.shortcuts import redirect
from rest_framework.views import APIView
from rest_framework.response import Response
def add_question(request):
if request.method == 'POST':
url = 'http://localhost:3000/questions/'
payload = {'content':request.POST.get("content"), 'category':request.POST.get("category")}
res = requests.post(url, data = (payload))
print(res)
return Response(res.json())
我的部分问题是,以前发布的关于该主题的大多数建议都已超过 3 年。我认为“rest_framework”模块不再用于此目的。很难说。
现在我得到的错误是:“raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)“POST /add_question HTTP/1.1”500 92794”
对我有用的 GET 方法是这样的:
def home(request):
if request.method == 'GET':
print('home')
api_request = requests.get("http://localhost:3000/questions/")#.json()
try:
print( 'api_request='+str(api_request))
q = literal_eval(api_request.content.decode('utf8'))
print('q=', q, type(q))
print( q['data'])
json_obj = json.dumps(q['data'])
print('json_obj=', json_obj, type(json_obj))
#api = json.loads(api_request.content)
api = json.loads(json_obj)
except Exception as e:
print( 'Exception e='+str(e))
api = "Error..."
else:
if request.method == 'POST':
post_request = requests.post("http://localhost:3000/questions/")
print(post_request)
return render(request, 'frontend/home.html', {'api': api})
我使用的 API 是我在 Node.js 中创建的。当我尝试发帖时,我从 Node 得到的错误是:“ReferenceError:未定义问题 在 addQuestion (file:///C:/nodepract/Project05/api/routes/questions.js:60:47)"
我将视图更改为以下内容。
def add_question(request):
if request.method == 'POST':
url = 'http://localhost:3000/questions/'
data = json.dumps(request.POST)
res = requests.post(url, data)
print("res.text = " + res.text)
return Response(res.json())
当前出现以下错误。 “ReferenceError:未定义问题”
【问题讨论】: