有没有办法从 Django 的请求中获取所有表单名称?
<input type="text" name="getrow">
Html 请求
def demoform(request):
if request.method=="POST"
inputtxt=request.POST.get("getrow")
return HttpResponse(...)
在上面我只能从
name
中得到我知道,我需要的是获取django请求的所有名称,然后解析它并获取数据。
尝试使用这个:
def demoform(request):
if request.method=="POST":
inputtxt=request.POST['getrow']
return HttpResponse(...)
但是如果您需要打印动态POST数据,例如发送许多产品的slug,(我是在2天前“2018年4月22日”制作的)您需要尝试这个:
for key, value in request.POST.items():
print('Key: %s' % (key) )
# print(f'Key: {key}') in Python >= 3.7
print('Value %s' % (value) )
# print(f'Value: {value}') in Python >= 3.7
要在 django 中显示 POST 值,您可以执行以下操作:
print(list(request.POST.items()))
您还可以使用
dict()
print(dict(request.POST.items()))
首先上面朋友的回答已经把如何获取所有帖子数据的事情弄清楚了。我再次为您解释一下,首先检查请求方法,然后您也可以在控制台上打印出来。
if request.method == 'POST':
print(request.POST)
顺便说一句,request.POST 返回一个字典结构化数据,因此如果您已经知道请求的数据,那么您可以在 POST 中传递来检索。
if request.method == 'POST':
print(request.POST['username'])
但是,如果您想处理所请求的数据,我的意思是您想过滤掉所需的数据,然后只需创建一个字典对象,然后对其进行处理即可。
post_data = dict()
if request.method == 'POST':
post_data = request.POST
print(post_data['username'])
如果你不知道密钥,那么你可以通过从字典中检索所有密钥来过滤掉。
for key, value in post_data.items():
if key == 'username':
print(value)
就是这样,希望我能好好回答你。
例如,如果您提交以下
POST
请求值:
{# "index.html" #}
<form action="{% url 'my_app1:test' %}" method="post">
{% csrf_token %}
<input type="text" name="fruits" value="apple" /></br>
<input type="text" name="meat" value="beef" /></br>
<input type="submit" />
</form>
然后,您可以获取
POST
中所有的views.py
请求值,如下所示。 *我的回答解释了如何在Django中获取POST
请求值:
# "views.py"
from django.shortcuts import render
def test(request):
print(list(request.POST.items())) # [('csrfmiddlewaretoken', 'b0EQnFlWoAp4pUrmsFxas43DYYTr7k04PhhYxqK3FDTBSXWAkJnsCA3GiownZQzS'), ('fruits', 'apple'), ('meat', 'beef')]
print(list(request.POST.lists())) # [('csrfmiddlewaretoken', ['b0EQnFlWoAp4pUrmsFxas43DYYTr7k04PhhYxqK3FDTBSXWAkJnsCA3GiownZQzS']), ('fruits', ['apple']), ('meat', ['beef'])]
print(request.POST.dict()) # {'csrfmiddlewaretoken': 'b0EQnFlWoAp4pUrmsFxas43DYYTr7k04PhhYxqK3FDTBSXWAkJnsCA3GiownZQzS', 'fruits': 'apple', 'meat': 'beef'}
print(dict(request.POST)) # {'csrfmiddlewaretoken': ['b0EQnFlWoAp4pUrmsFxas43DYYTr7k04PhhYxqK3FDTBSXWAkJnsCA3GiownZQzS'], 'fruits': ['apple'], 'meat': ['beef']}
return render(request, 'test.html')
然后就可以获取
POST
中所有的test.html
请求值,如下所示:
{# "test.html" #}
{{ request.POST.dict }} {# {'csrfmiddlewaretoken': 'Vzjk89LPweM4loDWTb9gFNHlRQNJRMNwzQWsiUaWNhgBOr8aLfZyPjHobgqFJimk', 'fruits': 'apple', 'meat': 'beef'} #}