2014-10-06 91 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