【发布时间】:2019-09-16 16:31:59
【问题描述】:
我正在尝试将一些数据从我的 React 前端发送到我的 Django REST 后端。
我的 Django 应用程序没有模型。
我有一个反应形式。当用户提交按钮时,表单“提交”三个参数:
公司名称
时间范围
numberOfResults
我想将这三个参数发送到我的 Django 后端。为此,我假设 React 正在向 Django 端点发送“POST”请求。 我需要 Django 中的这些参数,以便我可以使用它们对 ML 模型进行一些操作。
我的 React 函数
handleSubmit(event){
event.preventDefault()
fetch("/myapi/getreactinfotwitter",{
method:"POST",
headers:{
'Accept':'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
'data_options': {
'partnerName': this.state.firmName,
'timeframes': this.state.timeframes,
'numberOfResults': this.state.numberOfResults,
}
})
})
现在,我认为 Reast “POST” 必须与 Django “GET” 匹配,以便 Django 获取三个参数。
在 DJANGO 我有:
urls.py
path('getreactinfotwitter/', getreactinfotwitter, name="getreactinfotwitter")
myapi/views.py
@api_view(['GET', 'POST'])
def getreactinfotwitter(request):
print(request)
if request.method == 'GET':
return Response(request.data)
但是
我在
views.py中的request没有收到任何信息。在 Web 控制台中,当我单击提交时,我得到
POST http://localhost:8080/myapi/getreactinfotwitter/ 500 (Internal Server Error)
【问题讨论】:
-
快速谷歌搜索把我带到了这个,也许这会帮助你valentinog.com/blog/drf
-
我认为Reast“POST”必须与Django“GET”匹配这是错误的。如果您通过
post方法响应发送数据,那么在 django 视图中也使用post。我建议您使用 Postman 软件首先检查您的 django-rest api 是否正常工作,然后使用 React -
你能详细说明一下为什么我应该在 Django 上使用 POST 来接收来自 React 的数据吗?
-
post,get,put,patch,delete等是客户端请求服务器做某事的http方法。在这个 API 时代,相同的 API url 用于不同的目的(从服务器获取一些数据,通过后端代码将一些数据保存到数据库,编辑某些东西等)。这就是为什么服务器必须检查请求响应客户端的方法。如果客户端需要来自服务器的某些东西,那么客户端会通过 url 向服务器发送get请求。然后服务器检查请求的方法(这里是get)并根据方法做出响应。 -
你的问题解决了吗?