循环遍历 python 变量中的 POST 存储数据



我有一个包含多个输入的表单...在request.POST中,我循环遍历所有输入值。但我想将它们存储在一个变量中。我该怎么做?

for key, value in request.POST.items():
   print(key, value)  # how can I store instead of print?

如何将所有值存储在python数组/字典/任何东西中?

有几种方法可以将 POST 数据存储在局部变量中。问题是:无论如何,当您可以访问request.POST时,为什么要这样做?

# Note: all keys and values in these structures are strings
# easiest, but immutable QueryDict
d = request.POST 
# dict 
d = dict(request.POST.items())
# array
a = list(request.POST.items())  # list of key-value tuples
a = request.POST.values()  # list of values only

这些变量仅在当前请求-响应周期内有效。如果要保留超出此范围的任何数据,则必须将它们存储到数据库中。此外,我建议使用 django 表单来处理 POST 数据。这将为您处理验证、类型转换等。

这可能不会直接回答您的问题,但我不建议直接访问request.POST,因为您已经有表单了。表单很好,它通过将您需要处理的大量原始数据封装在表单对象中来抽象掉它们,所以我建议检查表单本身的数据:

form = YourForm(request.POST or None)
if form.is_valid():
    field1_value = form.cleaned_data['field1']
    field2_value = form.cleaned_data['field2']

django doc 有关于如何像我一样访问表单字段的示例。

另外,如果你想获得一个与request.POST相同的可变字典对象的副本,你可以这样做:

post_copy = request.POST.copy()

最新更新