【发布时间】:2022-01-15 23:39:37
【问题描述】:
我在 Django 中使用表单并尝试使用request.POST 取回数据,但这会为我返回一个空字典:<QueryDict: {}>。然而,当使用request.body 时,我得到了原始数据。我怎样才能从request.POST 获取数据,因为我不想使用原始数据。打印语句的控制台输出放在它们旁边的 cmets 中。
forms.py
class NameForm(forms.Form):
first_name = forms.CharField(label='First name:', max_length=100)
last_name = forms.CharField(label='Last name:')
views.py
@csrf_exempt
def blank(request):
form = NameForm()
print(f"request.body: {request.body}") # request.body: b'first_name=Adam&last_name=Smith'
print(f"request.POST: {request.POST}") # request.POST: <QueryDict: {}>
return render(request, 'blank.html', {'form': form})
空白.html
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<form action="" method="post">
{{ form }}
<input type="submit" value="Submit">
</form>
</body>
</html>
【问题讨论】:
-
如何提交表单?
-
@NKSM 你是什么意思?
-
在输入中按下提交按钮,类型为 submit
-
使用
if request.method == "POST": print(f"request.POST: {request.POST}") -
打印
request.method和request.content_type会得到什么?
标签: python html django forms request