Python 如何使用request.form.get从表单中获取多个元素

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(){ $("

我在一个html文件中有一个表单,这个表单正在创建新的输入字段,用户应该在其中输入一些信息。稍后,我想将所有这些值传递到我的python主文件(application.py)中,并用它们做一些事情。问题是我不知道如何将几个值传递到python中。通常我会用这个

request.form.get(“用户名”)

它返回html文件中名为“username”的输入字段的值。现在,我有几个输入字段,当用户按下按钮时生成:

$("#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)