【问题标题】:Python Flask : url_for to pass the variable to function from form templatePython Flask:url_for 将变量从表单模板传递给函数
【发布时间】:2018-08-25 07:41:01
【问题描述】:

我尝试了这种方法,通过 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>

问题: 为这两个变量获取“无”

【问题讨论】:

    标签: python python-2.7 flask


    【解决方案1】:

    首先,在您的 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)
    

    并打开网址——

    http://127.0.0.1:5000/report_data

    我得到了这张照片。

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

    ('2018','08')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-11
      • 2020-10-23
      • 2016-10-10
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 2020-06-05
      • 2018-12-26
      相关资源
      最近更新 更多