我尝试创建一个烧瓶搜索,但是当它没有显示任何错误时,始终没有显示任何结果这是我在app.py中的代码
@app.route("/search", methods=['GET', 'POST'])
def shearch():
if request.form == 'POST':
search = request.form.get("search")
results = Books.query.filter_by(search=request.form.search).all
return render_template('search.html', results=results, search=search)
return render_template('search.html')
和html文件中
<form class="search" action="/search" method="post">
<fieldset class="search">
{{ form.search.label }} {{ form.search(placeholder='search') }}
</fieldset>
<div class="submit-button">
{{ form.submit }}
</div>
<table>
{% if not results|length %}
<h6> No results found. Please try again.</h6>
{% else %}
<tr>
<th>isbn</th>
<th>title</th>
<th>author</th>
<th>year</th>
</tr>
{% for result in results %}
<tr>
<th><a href="api/{{result['isbn']}}"> {{result['isbn']}}</th>
<th><a href="books/{{result['title']}}"> {{result['title']}}</th>
<th> {{result['author']}}</th>
<th> {{result['year']}}</th>
</tr>
{% endfor %} {% endif %}
</table>
它完全没有结果我尝试在app.py文件中使用另一种方法
if request.method == 'POST':
search = str(form.search.data)
results = Books.query.filter((Books.title, Books.author, Books.year, Books.isbn).like(search=form.search.data)).all()
return render_template('search.html', results=results, search=search, form=form)
我修复它特别感谢furas和我的朋友该代码应为
form = SearchForm()
search = form.search.data
if request.method == 'POST':
search = form.search.data
search = search.strip()
results = Books.query.filter(or_(Books.title.ilike(f'%{search}%'), Books.author.ilike(f'%{search}%'), Books.year.ilike(f'%{search}%'), Books.isbn.ilike(f'%{search}%'))).all()
return render_template('search.html', results=results, form=form, search=search)
return render_template('search.html', form=form, search=search)
将修复它并在数据库中搜索