Django 获取通过 cURL 发布的 POST 数据
Django get POST data posted via cURL
我像这样使用 cURL 发送数据:-
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "{
\"social_id\": \"string\",
\"social_source\": \"FB/Gmail\",
\"access_token\": \"string\"
}"
但我无法在我的视图中获取此数据:-
这是我的观点:-
class UserCreate(View):
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(UserCreate, self).dispatch(request, *args, **kwargs)
def post(self, request):
print request.POST['social_id']
我也试过 request.data
。我做错了什么?
如果您要向服务器发布 JSON blob,那么您将没有任何可用的 POST
参数 - 只有当您以 application/x-www-form-urlencoded
格式提交数据时才会填充这些参数(例如,使用 HTML 形式)。
您可以按如下方式访问您的 JSON 数据(从视图函数内部):
import json
data = json.loads(request.body)
# Data is now a python dict, e.g.,
print data['social_id']
我像这样使用 cURL 发送数据:-
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "{
\"social_id\": \"string\",
\"social_source\": \"FB/Gmail\",
\"access_token\": \"string\"
}"
但我无法在我的视图中获取此数据:-
这是我的观点:-
class UserCreate(View):
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(UserCreate, self).dispatch(request, *args, **kwargs)
def post(self, request):
print request.POST['social_id']
我也试过 request.data
。我做错了什么?
如果您要向服务器发布 JSON blob,那么您将没有任何可用的 POST
参数 - 只有当您以 application/x-www-form-urlencoded
格式提交数据时才会填充这些参数(例如,使用 HTML 形式)。
您可以按如下方式访问您的 JSON 数据(从视图函数内部):
import json
data = json.loads(request.body)
# Data is now a python dict, e.g.,
print data['social_id']