2014-10-06 88 views
5

我正在使用Flask构建一个网站,并且在一个页面上我有两种形式。如果有POST,我需要决定发布哪个表单。我当然可以从request.form中的字段中扣除它,但我宁愿通过获取提交表单的名称(由<form name="my_form">定义)来明确它。我尝试了几件事情,例如:如何在Flask中获取提交表单的名称?

@app.route('/myforms', methods=['GET', 'POST']) 
def myForms(): 
    if request.method == 'POST': 
     print request.form.name 
     print request.form.['name'] 

但不幸的是,没有任何工作。有人知道我可以在哪里获得提交表单的名称吗?欢迎所有提示!

回答

11

没有'表单的名称'。该信息不是由浏览器发送的; <form>标签上的name属性仅用于浏览器端(并且不推荐使用该引擎,而改用id)。

你可以添加,通过使用一个隐藏字段的信息,但形式张贴区分在同一表单处理程序最常用的方式是给提交按钮的名称:

<submit name="form1" value="Submit!"/> 

if 'form1' in request.form: 

但您也可以使用<input type="hidden">字段包含区分表单的方法。

+0

谢谢!这确实解决了我的问题!我从来不知道这不是由浏览器发送的。最后一个问题:“弃用启动”是什么意思? – kramer65 2014-10-06 14:02:02

+0

@ kramer65:'name'属性在HTML 4中已被弃用。因此,它不仅对您的用例没有用处,甚至也不是您应该使用的属性。 – 2014-10-06 14:03:14

+0

啊,真棒。我在九十年代学习了html,之后我主要在后端系统工作多年。所以我的HTML技能有点过时..;)感谢一百万! – kramer65 2014-10-06 14:11:38