Как передать JSON данные из React в Django с помощью POST запроса?
У меня есть фронтенд React, в котором есть переменная state, содержащая массив. Я хочу передать эту переменную состояния onClick моему Django's views.py
. На данный момент у меня есть что-то вроде этого:
App.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>
views.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')
urls.py
...
urlpatterns = [
...
path('insert/', views.insert),
...
]
Правильно ли я использую подход? Если правильный, то что я должен передать в качестве параметров методу get()
?
*P.s. Я не использую DRF для этого подхода и создаю приложение, где Django и React находятся в одном приложении (не отдельно), где фронтенд является приложением Django.
Перед проблемой есть пара моментов. Во-первых, вы не должны использовать insert
в качестве имени представления, это противоречит остальным соглашениям, подробнее читайте этот документ
Второе сделать fetch("http://localhost:8000/insert/", requestOptions);
В-третьих, когда вы хотите получить тело, все, что вам нужно сделать, это
import json
data = json.loads(request.body)
и вы получите данные поста в формате json на руки