【发布时间】:2020-05-19 11:15:16
【问题描述】:
在 Flask 的dashboard() 函数中,给用户一个要填写的搜索表单,填写表单后,他会得到他搜索的一些书籍的名称。在点击一本书的标题时,他应该会被引导到一个 HTML 页面,在那里他可以获得有关该书的一些信息。
@app.route('/dashboard', methods=['GET','POST'])
def dashboard():
form = SearchForm()
if form.validate_on_submit():
if form.ISBN.data:
results = Books.query.filter(Books.ISBN.like('%' + form.ISBN.data + '%')).all()
elif form.Title.data:
results = Books.query.filter(Books.Title.like('%' + form.Title.data + '%')).all()
return render_template('search_results.html', name=current_user.username, form = form, results=results)
return render_template('dashboard.html', name=current_user.username, form = form)
在上述函数中,SearchForm 是一个 WTF 烧瓶形式。
这是我的 search_results.html 中的代码:
{% for result in results: %}
{{result.ISBN}}
<a href="{{url_for('details')}}">{{result.Title}}</a>
{%endfor%}
这是我的详细信息功能:
@app.route('/dashboard/details', methods = ['GET', 'POST'])
def details():
if request.method == 'POST':
return render_template('details.html')
return render_template('details.html')
我想要的是,获取用户在 dashboard() 函数中填写的表单数据,并在 details() 函数中使用该数据将该信息传递到 details.html 页面,我将在该页面打印用户填写的数据,以及存储在数据库中的图书数据。
但我不知道该怎么做。
我尝试使用global form = SearchForm() 将表单设为全局,但这给了我一个语法错误:
global form = SearchForm()
^
SyntaxError: invalid syntax
任何帮助将不胜感激。
【问题讨论】:
标签: html database flask flask-sqlalchemy flask-wtforms