Python 如何使用request.form.get从表单中获取多个元素
我在一个html文件中有一个表单,这个表单正在创建新的输入字段,用户应该在其中输入一些信息。稍后,我想将所有这些值传递到我的python主文件(application.py)中,并用它们做一些事情。问题是我不知道如何将几个值传递到python中。通常我会用这个 request.form.get(“用户名”) 它返回html文件中名为“username”的输入字段的值。现在,我有几个输入字段,当用户按下按钮时生成:Python 如何使用request.form.get从表单中获取多个元素,python,html,flask,request.form,Python,Html,Flask,Request.form,我在一个html文件中有一个表单,这个表单正在创建新的输入字段,用户应该在其中输入一些信息。稍后,我想将所有这些值传递到我的python主文件(application.py)中,并用它们做一些事情。问题是我不知道如何将几个值传递到python中。通常我会用这个 request.form.get(“用户名”) 它返回html文件中名为“username”的输入字段的值。现在,我有几个输入字段,当用户按下按钮时生成: $("#add_dream").click(function(){ $("
$("#add_dream").click(function(){
$("#"+x).append('<button type="submit" style="height:30px;" class="delete"
id="ix">Remove</button>')
document.getElementById("ix").setAttribute("id","delbuttdream"+j)
}
$(“添加梦想”)。单击(函数(){
$(“#”+x).append('Remove')
document.getElementById(“ix”).setAttribute(“id”、“delbuttdream”+j)
}
这不是全部代码,但它可能有助于理解我的意思。用户可以根据需要多次创建或删除这些新字段,因此字段名称或其ID不会遵循直接顺序(1,2,3,4…)。我想知道我是否可以使用request.form从python中调用。获取同一类别的所有元素或具有特定id的元素,而不是仅按名称调用其中一个元素。示例形式:
Items in random order</br>
<form method="POST">
<input name="item4" value="val4"/></br>
<input name="item2" value="val2"/></br>
<input name="item1" value="val1"/></br>
<input name="item3" value="val3"/></br>
<button type="submit">OK</button>
</form>
或者request.form.keys()
只获取用于筛选和排序的键
keys = request.form.keys()
keys = [key for key in keys if key.startswith("item")]
keys = sorted(keys)
for key in keys:
#print(key, request.form[key])
print(key, request.form.get(key))
最低工作代码:
from flask import Flask, request, render_template_string
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
print('--- original order ---')
for key, val in request.form.items():
if key.startswith("item"):
print(key, val)
print('--- sorted ---')
keys = request.form.keys()
keys = [key for key in keys if key.startswith("item")]
keys = sorted(keys)
for key in keys:
#print(key, request.form[key])
print(key, request.form.get(key))
return render_template_string('''Items in random order</br>
<form method="POST">
<input name="item4" value="val4"/></br>
<input name="item2" value="val2"/></br>
<input name="item1" value="val1"/></br>
<input name="item3" value="val3"/></br>
<button type="submit">OK</button>
</form>
''')
if __name__ == '__main__':
app.run(debug=True)
从烧瓶导入烧瓶,请求,呈现\u模板\u字符串
app=烧瓶(名称)
@app.route('/',方法=['GET','POST'])
def index():
如果request.method==“POST”:
打印('---原始订单--')
对于键,request.form.items()中的val:
如果使用“项目”键启动:
打印(键,val)
打印('---已排序--')
keys=request.form.keys()
keys=[如果key.startswith(“项”)为key in keys,则为key for key in keys]
键=已排序(键)
对于键入键:
#打印(键,请求.表单[键])
打印(key,request.form.get(key))
返回呈现模板字符串(''项以随机顺序排列
好啊
''')
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(debug=True)
我记得request.form
是字典(或行为类似字典),因此您可以使用request.form.keys()
或将其与一起用于请求中的项目。form
:
from flask import Flask, request, render_template_string
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
print('--- original order ---')
for key, val in request.form.items():
if key.startswith("item"):
print(key, val)
print('--- sorted ---')
keys = request.form.keys()
keys = [key for key in keys if key.startswith("item")]
keys = sorted(keys)
for key in keys:
#print(key, request.form[key])
print(key, request.form.get(key))
return render_template_string('''Items in random order</br>
<form method="POST">
<input name="item4" value="val4"/></br>
<input name="item2" value="val2"/></br>
<input name="item1" value="val1"/></br>
<input name="item3" value="val3"/></br>
<button type="submit">OK</button>
</form>
''')
if __name__ == '__main__':
app.run(debug=True)