Python 如何迭代请求对象并按特定html标记进行筛选
鉴于以下代码:Python 如何迭代请求对象并按特定html标记进行筛选,python,html,django,loops,Python,Html,Django,Loops,鉴于以下代码: output='' for k,v in request.POST.items(): output+= k + ' ' 这将返回: textarea4 _submit textarea2 csrfmiddlewaretoken textarea1 textarea3 但是,我只想要textarea名称。如何过滤掉其余部分?您可以使用相同的名称提交它们,例如textarea[]然后使用request.POST.getlist('textarea')获取值 具有三个文本区
output=''
for k,v in request.POST.items():
output+= k + ' '
这将返回:
textarea4 _submit textarea2 csrfmiddlewaretoken textarea1 textarea3
但是,我只想要
textarea
名称。如何过滤掉其余部分?您可以使用相同的名称提交它们,例如textarea[]
然后使用request.POST.getlist('textarea')
获取值
具有三个文本区域字段的表单示例:
<form>
<textarea name='textarea[]'></textarea>
<textarea name='textarea[]'></textarea>
<textarea name='textarea[]'></textarea>
<button type='submit'>Submit</button>
</form>
提交
为什么不试试看每个键是否以文本区域开头?对字符串使用以下方法:
output = ''
for k in request.POST:
if k.startswith('textarea'):
output += k + ' '
output = ' '.join([k for k in request.POST if k.startswith('textarea')])
但是,为了更具python风格,请对字符串使用以下方法:
output = ''
for k in request.POST:
if k.startswith('textarea'):
output += k + ' '
output = ' '.join([k for k in request.POST if k.startswith('textarea')])
如果request.POST
中的每个键都以textarea
开头,则上述内容将字符串或request.POST中的键连接在一起,并在每个键之间留有空格。我使用了一行代码来帮助我完成这项工作。添加一个条件来检查k.startswith('textarea')
这是否有效。谢谢如果你回答我的问题,我会接受的。做了一些轻微的语法修改。希望你不介意!我喜欢这个选项,但你能举个例子说明我如何以列表的形式提交吗?我现在已经用一个html表单的例子更新了我的答案。谢谢更新!很高兴知道以供将来参考,但在我目前的情况下,我不能使用它,因为名称实际上全部或部分是一个id号。您可以始终将id放入数据属性中,例如data id=“{x.id}}”
@woodduck-谢谢!:D