我的搜索有问题。目前我正在尝试编写一个小的receipe门户网站,我正在尝试搜索表格user
,category
和recipe
中的字词。当我写一些单词时,我收到一条错误消息:
错误的请求。浏览器(或代理)发送了此服务器的请求 无法理解。
我想,问题仍然存在于我的函数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>
答案 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>