Python Flask:url_for将变量从表单模板传递给函数

时间:2018-08-25 07:41:02

标签: python python-2.7 flask

我尝试了这种方法,以通过url_for方法将表单输入变量传递给函数。但是它不起作用。谁能检查一下并让我知道这段代码有什么问题。

功能

@app.route('/report_data/<year>/<week>', methods = ['POST'])
def report_data(year,week):
  print year
  print woy

HTML代码:

 <html>
<body>
   <form action="{{  url_for('report_data', year=n_year, week=n_woy) }}" method="post">
        <h3> Enter the details  </h3>
        Year :
        <input type="text" name="n_year"> <br>
        <br>
        Week :
        <input type="text" name="n_woy"> <br>
        <br>
        <input type="submit" value="Submit"> <br>
        </form>
        </body>
        </html>

问题: 两个变量都“无”

1 个答案:

答案 0 :(得分:0)

首先,如何在提交HTML代码之前将其提供年,周值? 您是否在函数中呈现了HTML模板?如果不是,那么烧瓶功能如何知道您要从该特定表格中寻找?

如果这是您的Flask应用代码-

from flask import Flask, render_template, request
app = Flask(__name__)

@app.route('/report_data', methods = ['POST', 'GET'])
def report_data():
    if request.method == 'POST':
        result = request.form
        query_year = result['n_year'].encode('ascii', 'ignore')
        query_week = result['n_woy'].encode('ascii', 'ignore')
        print(query_year, query_week)
    return render_template('so_test.html')

if __name__ == '__main__':
   app.run(debug=True)

并打开URL-

  

http://127.0.0.1:5000/report_data

我得到这张照片。 enter image description here

发布数据后,我可以在Flask应用程序控制台中看到此数据。

  

('2018','08')