mysqldb を使用してローカルに作成したデータベースから isbn 、 author 、 year 、 title を読み取るために、検索フォームを作成しようとしています。いくつかのウェブサイトに沿って熟考し、それを実現するためのチュートリアルを試しても、これを行うための最適な方法を見つけることができません. 今私がやったことはこれです。Python コード
@app.route('/search_results/<query>', methods = ['GET','POST'])
@is_logged_in
def search_results(query):
cur=mysql.connection.cursor()
likeString = "'%%" + query + "%%'"
result = cur.execute("SELECT * FROM books WHERE %s LIKE %s;", (query, likeString))
if result > 0:
data = cur.fetchall()
return render_template('search_results.html' , data = search)
else:
error = 'Nothing found'
return render_template('dashboard.html' , error = error)
return render_template('dashboard.html')
@app.route('/dashboard')
@is_logged_in
def dashboard():
search = SearchForm(request.form)
if request.method == 'POST':
select = form.select.data
search = form.search.data
query = select + search
return redirect((url_for('search_results', query = query)))
return render_template('dashboard.html', form = search)
そして私のhtmlコードは次のとおりです:-
{% extends 'layout.html' %}
{% block body %}
<h1>Dashboard <small>Welcome {{session.username}}</small></h1>
{% from "includes/_formhelpers.html" import render_field %}
<form action="/search_results/{{form.select}}/{{form.search}}" method=post>
<dl>
{{ render_field(form.select) }}
<p>
{{ render_field(form.search) }}
</dl>
<p><input type=submit value=Search>
</form>
</div>
{% for message in get_flashed_messages() %}
<div class=flash>
{{ message }}
</div>
{% endfor %}
{% endblock %}
次のように検索を表示するヘッダー H1 以外は何も含まれていない、分離された search_results.html も作成しました。
<h1>{{search}}</h1>