Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一页Python烧瓶上的多个表单_Python_Python 3.x_Flask_Jinja2_Flask Wtforms - Fatal编程技术网

一页Python烧瓶上的多个表单

一页Python烧瓶上的多个表单,python,python-3.x,flask,jinja2,flask-wtforms,Python,Python 3.x,Flask,Jinja2,Flask Wtforms,因此,我在一个页面上加载数据库中的所有用户,并为同一页面上的每个用户生成一个密码重置表单,而不是为每个用户生成一个单独的页面 我的问题是,由于我通过下拉菜单为每个用户提供了多个表单和提交按钮,因此如何单击提交并为该特定用户应用更改 在我的例子中,提交按钮是“重置密码”按钮 我正试着用正常的方式调用表单 if request.method == "POST" and form.validate(): password = request.form['password'] 但我得到了异常

因此,我在一个页面上加载数据库中的所有用户,并为同一页面上的每个用户生成一个密码重置表单,而不是为每个用户生成一个单独的页面

我的问题是,由于我通过下拉菜单为每个用户提供了多个表单和提交按钮,因此如何单击提交并为该特定用户应用更改

在我的例子中,提交按钮是“重置密码”按钮

我正试着用正常的方式调用表单

if request.method == "POST" and form.validate():
    password = request.form['password']
但我得到了异常错误

name 'form' is not defined
我试图解决这个问题已经有一段时间了,但我现在很困惑,因为我在同一个页面上有多个表单(每个用户一个)

注意:我没有将WTForms用于此任务


谢谢

我不确定这个问题是否得到了回答,但我刚刚发现:

按照你的标准

if request.method == 'POST':
您可以测试request.form数据中是否存在每个表单项。因此,在第一个if语句之后添加另一个if语句

if 'my_form_element_name' in request.form:
    print ('stuff')
如果您有其他类型的表单数据,如文件,则可以执行以下操作:

if request.method == 'POST':
    if 'file_element_name' in request.files:
        return stuff
    elif 'my_form_element_name' in request.form:
           return stuff
    else: return stuff
else: return stuff

我在一个html文件中有四个表单,这个方法对我很有效。

在上面的代码中(在
form.validate()
)使用
request.form
form
),可能是指同一个对象,这意味着其中一个是错误的。该错误似乎是要将
form.validate()
更改为
request.form.validate()
。但是,如果您不使用WTForms,作为请求一部分的固有表单是否具有验证方法?我不知道,但我怀疑不是。为什么不先用javascript/jquery进行处理,然后通过ajax将信息发送到flask?我发现头上的疼痛减轻了。。。好奇:你的设计使用什么工具?@Attack68谢谢你的帮助。。。你完全正确。事实上,我的问题是,因为我没有使用WTForms进行此操作,所以没有.validate()函数。我删除了.ValueAID(),它工作得很好……@托宾,我用这个项目的Bootstrap作为骨架,但是我通常使用ZURB基金会来处理网格和响应视图和自定义CSS/HTML。我使用bootstrap,因为我发现它非常适合原型制作。。。