Я получаю данные POST
-ed с моим php следующим образом
$data = file_get_contents('php://input');
$json = json_decode($data, true);
// etc...
Я пробовал то же самое с Django
вот так
@csrf_exempt # because not csrf
def some_view(request):
data = request.POST.get()
print(data)
return HttpResponse('Hello world')
но я получал
TypeError: get() missing 1 required positional argument: 'key'
поэтому я добавил ""
к get()
вот так request.POST.get("")
. Но я получаю None
сейчас.
Как я могу получать размещенные данные без form
???
ОБНОВЛЯТЬ:
Я смог получить данные. Это было в request.body
Поскольку данные анализируются как JSON, вы можете использовать request.body
для получения данных.
Синтаксис:
import json
data = request.body.decode('utf-8')
json.decode(data)
Попробуйте request.POST.items()
и проверьте, получаете ли вы какие-либо значения
Спасибо! Я получил <generator object MultiValueDict.items at 0x7fc83d104cf0>
, я должен использовать next()
сейчас?
Обычно он должен возвращать список :( . Пожалуйста, попробуйте и это: request.POST.keys()
получил dict_keys([])
Думаю, что-то не так в приеме данных... Но без urls.py
приведенного выше кода это все, что у меня есть..
Это означает, что ничего не было получено до конца POST
. Можете ли вы добавить код устройства IOT к своему вопросу. Достаточно части, отвечающей за размещение данных.
он основан на планшете Android, с приложением, внутри которого отправляются данные (я редактировал вопросы), единственная настройка - это настройка, которую я написал в разделе вопросов.
Как выглядит ваш файл urls.py
?
from . import views
, path("kaoiro-post/", views.my_view, name = "kaoiro-post"),
Попробуйте print(request.body)
Я понял! Тело выглядит так: b'{"mac":"8CFCA00442D7","userId":"08914"
Прохладный! Вы можете сделать что-то вроде этого: import json
data = request.body.decode('utf-8')
json.decode(data)
Пожалуйста, рассмотрите возможность одобрения ответа, если он помог :)
Рад, что смог помочь :)
У меня нет файла
html
, и IoT отправляет толькоstring
, поэтому первый невозможен, а сdict()
я получаю{}
Но я уверен, что данные отправлены, потому что я могу получить их с помощьюphp
выше