2017-08-07 97 views
1

我想用燒瓶從html窗體中獲取數據。表單顯示在網站上,但是當我提交python沒有收到它。使用燒瓶接收來自表格的數據

HTML代碼:

<form action="/signup" method="post"> 
    <input type="text" name="email"></input> 
    <input type="submit" value="signup"></input> 
</form> 

Python代碼:

from flask import Flask, render_template, request, redirect 
app = Flask(__name__) 
@app.route('/') 
def home(): 
    return render_template('home.html') 
@app.route('/about/') 
def about(): 
    return render_template('about.html') 
@app.route('/signup', methods = ['POST']) 
def signup(): 
    email = request.form['email'] 
    print("The email address is '" + email + "'") 
    return redirect('/') 
if __name__ == '__main__': 
    app.run(debug=True) 

APP

--static

----的main.css

--templates

---- HTML代碼(home.html做爲)

Python代碼(hello.py)

+3

什麼是例外? – stamaimer

+0

哪裏給出了html代碼? – Fejs

+0

將編輯顯示代碼位於 – Daniel

回答

0

使用瓶對錶單動作url_for可以肯定的是submited到正確的位置。

<form method="post" action="{{ url_for('signup') }}"> 
+0

我需要對我的Python代碼進行任何更改嗎?我試過但得到結果。 – Daniel

+0

不,只要確保在url_for中調用的函數存在於你的路由器 – DobleL

+0

請你能解釋我將如何檢查? – Daniel

0

該代碼適用於我。 我只會改變使用url_for()構造,而不是直接指定您的端點。 I.E .:使用return redirect(url_for('home'))

或者,嘗試爲您的'註冊'端點提供GET請求。

  1. 增加 'GET' 到你的方法參數
  2. 將您的打印塊下if聲明(if request.method == "POST"
  3. 在此之下塊裝上去return。 (return redirect(url_for('home')),return render_template('xyz.html')等)