如何从Django中的请求中获取所有发布数据?

时间:2016-04-19 13:14:47

标签: python django forms

有没有办法从Django的请求中获取所有表单名称?

<input type="text" name="getrow">

Html请求

def demoform(request):
    if request.method=="POST"
       inputtxt=request.POST.get("getrow")
       return HttpResponse(...)

在上面我只能从我知道的name获得,我需要的是获取django请求的所有名称,然后解析它并获取数据。

3 个答案:

答案 0 :(得分:7)

要在 django 中显示 POST 值,您可以执行以下操作:

print(list(request.POST.items()))

您也可以使用 dict()

print(dict(request.POST.items()))

答案 1 :(得分:4)

试试这个:

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

答案 2 :(得分:1)

首先我们上面的朋友的回答已经清除了关于如何获取所有帖子数据的一切。我再给你解释一下,先检查请求方法,然后你也可以在控制台打印出来。

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)

就是这样,希望我能很好地回答你。