DjangoでPOSTデータを取得する方法
Django では、POST メソッドのデータは request.POST で取得できます。
POSTデータには、ビューファンクションでリクエストオブジェクトを通して最初にアクセスします。 例:
from django.http import HttpResponse
def my_view(request):
if request.method == 'POST':
my_data = request.POST.get('my_data', '') # 获取名为'my_data'的POST数据
# 进行其他操作...
return HttpResponse('Success')
else:
return HttpResponse('Method not allowed')
上記の例では、request.POST は辞書オブジェクトに似たオブジェクトで、POSTデータは get() メソッドを通じて取得できます。get() メソッドの最初の引数は POST データのキー、2 番目の引数には省略可能な既定値が設定されています。POST データに指定されたキーが存在しない場合は、既定値が返されます。
request.POST.dict()メソッドを使用することで、すべてのPOSTデータを辞書に変換できます。例:
def my_view(request):
if request.method == 'POST':
post_data = request.POST.dict() # 获取所有的POST数据
# 进行其他操作...
return HttpResponse('Success')
else:
return HttpResponse('Method not allowed')
ご注意ください。request.POSTはContent-Type: application/x-www-form-urlencodedまたはmultipart/form-dataによるPOST送信のデータのみアクセスできます。Content-Type: application/jsonによるPOST送信のデータにアクセスするには、request.bodyから生のPOSTデータを取得し、json.loads()でJSONデータをパースします。例:
import json
def my_view(request):
if request.method == 'POST':
json_data = json.loads(request.body) # 获取JSON格式的POST数据
# 进行其他操作...
return HttpResponse('Success')
else:
return HttpResponse('Method not allowed')
基本的な使い方について述べましたが、具体的なニーズやデータ構造に応じて、それに応じた操作と処理を行うことができます。