在Flask中使用Post方法

时间:2016-08-21 21:33:47

标签: python flask

使用以下内容:

from flask import Flask, render_template
import beautiful_soup_tidal

app = Flask(__name__)

@app.route('/')
def form():
    return render_template('form_submit.html')

@app.route('/richmond', methods=['POST'])
def richmond():
    someTides = beautiful_soup_tidal.getTides()
    return render_template('richmond.html',someTides=someTides)

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

尝试渲染以下内容(richmond.html):

<div id="content" class="form-group">
    <form method="post" action="/richmond">

        <label style="vertical-align: middle;">channel depth at mean low water
        <input type="number" step="0.1" value = "34.5" name="channelDepth"/>FEET</label><br><br>

        <label style="vertical-align: middle;">required underkeel clearance
        <input type="number" step="0.1" value = "2" name="underkeelClearance"/>FEET</label><br><br>

        <button type="submit" class="btn btn-primary">Submit</button>

    </form>
</div>

我收到以下错误:&#39;请求的网址不允许使用该方法。&#39;

如果我删除&#39;,方法= [&#39; POST&#39;]&#39;在第一部分中,模板呈现。

问题:如何使用post方法成功渲染模板?

1 个答案:

答案 0 :(得分:0)

我相信这一行还应该包含GET,这样你就可以在实际点击提交发布之前第一次呈现html表单。

@app.route('/richmond', methods=['POST'])

所以它会改为

@app.route('/richmond', methods=['GET', 'POST'])