reactjs - 如何使用 POST 请求将 JSON 数据从 React 传递到 Django?
问题描述
我有一个 React 前端,它有一个包含数组的状态变量。我想将此状态变量 onClick 传递给我的 Django 的views.py
. 我到目前为止是这样的:
应用程序.js
const [dataSource, setDataSource] = useState([]); // Where the data is stored in
const requestOptions = {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(dataSource),
};
const handleSubmit = () => {
fetch("http://localhost:8000/insert", requestOptions);
};
<Popconfirm onConfirm={handleSubmit}>
<Button>Submit</Button>
</Popconfirm>
视图.py
def insert(request):
if request.method == 'POST':
json_data = request.POST.get()
# I'm not sure what should I be putting as a parameter for .get() method
return render(request, 'frontend/index.html')
网址.py
...
urlpatterns = [
...
path('insert/', views.insert),
...
]
我是否使用了正确的方法?如果它是正确的,我应该将什么作为参数传递给该get()
方法?
*Ps 我没有为这种方法使用 DRF,我正在构建一个应用程序,其中 Django 和 React 位于一个应用程序中(不是分开的),其中前端是 Django 的一个应用程序。
解决方案
问题之前的几件事。首先,您不应该使用insert
它作为您的视图名称,这违反了其他约定,更多信息请阅读此文档
第二做fetch("http://localhost:8000/insert/", requestOptions);
第三,当你想得到身体时,你需要做的就是
import json
data = json.loads(request.body)
你会得到你手中的 json 格式的 post 数据
推荐阅读
- java - 如何在 Volley 上使用带有 Signport 的 OAuth 1.0a(OAuth 1.0 身份验证 OAuthConsumer.sign())
- algorithm - 带条件边的循环图的最大尺寸
- php - 加入 Mongodb 并使用 laravel 在连接表中搜索
- elasticsearch - 在类型为 [doc] 的映射中未找到 [path] 的字段
- java - 如何在数据类型数组中找到 sumOfelements
- git - 如何在 git 中禁用寻呼机,仅用于仅名称选项的差异?
- reactjs - 如何发送 e.target 第二个值?
- ios - NSURLSession 和多线程用于下载多个文件
- r - 从文本字符串中删除 HTML 标记并保留文本
- sql - BI Publisher 中的日期格式 - SQL 数据集