Flask中的搜索表单仅适用于某些页面

时间:2017-01-12 16:32:58

标签: python flask

我在基本模板中有一个搜索表单,以便用户可以从任何页面进行搜索。如果他们从//home/speciesinfo进行搜索,则可以正常使用。如果他们从搜索结果页/speciesinfo/<nrcs_species>进行搜索,则无效。为什么我的搜索仅适用于某些页面?

@app.route('/result', methods = ['GET', 'POST'])
def result():
    if request.method == 'POST':
        spp = request.form.get('query')
        query = SPInfo.query

        if spp:
             query = query.filter(or_(
                 (func.lower(SPInfo.NRCS_Species.contains(spp))),
                 (func.lower(SPInfo.NRCS_CommonName.contains(spp))),
                 (func.lower(SPInfo.MTNHP_Species.contains(spp))),
                 (func.lower(SPInfo.Synonyms.contains(spp))),
             ))

        return render_template('result.html', results=query.all())

    return render_template('result.html')
<form method="POST" action="result">
    <input name="query"/>
</form>

1 个答案:

答案 0 :(得分:0)

form文件中的layout.html定义更改为:

<form method="POST" action="{{ url_for('result') }}">

它应该解决你的问题。