Flask中的搜索功能

时间:2016-12-23 11:21:22

标签: python search flask

我的搜索有问题。目前我正在尝试编写一个小的receipe门户网站,我正在尝试搜索表格usercategoryrecipe中的字词。当我写一些单词时,我收到一条错误消息:

  

错误的请求。浏览器(或代理)发送了此服务器的请求   无法理解。

我想,问题仍然存在于我的函数search中,但我没有看到它。

@app.route("/search", methods=['GET', 'POST'])
def search():
    cursor = g.con.cursor()
    cursor.execute('SELECT * FROM nutzer, kategorien, rezepte WHERE Nutzername OR Titel = %s', (request.form["search"],))
    result = cursor.fetchall()
    cursor.close()
    return render_template('Results.html', result = result)

{% extends "layout.html" %}
{% block body %}
<table border="1">
    {% for i in result %}
        <tr><td>{{ i.1 }}</td></tr>
    {% endfor %}
</table>

{% endblock %}

搜索栏的HTML代码

    <form action="search">
        <input name="search" type="text" placeholder="suchen" value="{{ request.form.search}}" required />
        <button>finden</button>
    </form>

2 个答案:

答案 0 :(得分:1)

request.form()表示POST方法,而默认值为GET。您应该检查request.method并在GET的情况下使用request.args(),或者将参数method="POST"添加到<form>(并将POST作为{{1}中唯一接受的方法}。

答案 1 :(得分:0)

我认为您的表单操作必须指向您的搜索终结点。

<form action="{{ url_for(search) }}">
  <input name="search" type="text" placeholder="suchen" value="" required />
  <button>finden</button>
</form>