应该是非常基本的。我正在使用我正在开发的烧瓶应用程序进行一些搜索。
@app.route('/search_results/<search_string>', methods= ['GET', 'POST'])
def generateSearchResults(search_string = None):
#an exact match
if search_string in data_struct:
return displayInfomation(search_string)
else:
#code that will figure out possible matches, and then render
#a template based on that
@app.route('/display_results/<search_string>', methods= ['GET', 'POST'])
def displayInfomation(search_string = None):
#figures some stuff out based on the search string, then renders a template
对于那些不擅长阅读代码的人,我试图采取另一种途径,如果在我正在使用的数据结构中找到url中传递的东西。但是,当我尝试这个时,我会在网址栏中看到
http://my_site_name/search_results/search_string
所以很明显ISN&T调用我的displayInfomation函数。我尝试了对我来说似乎很直观的事情,有谁知道如何做到这一点?
答案 0 :(得分:0)
您只是在这里重复使用其他视图进行渲染。如果您的if search_string in data_struct
测试为True
,则另一个视图将用作函数,将调用。这与浏览器中显示的URL几乎没有关系,因为浏览器在访问/search_results/search_string
URL时不知道或不关心服务器的作用。
如果您希望更改网址,请使用redirect()
指示浏览器加载其他视图:
from flask import redirect, url_for
@app.route('/search_results/<search_string>', methods= ['GET', 'POST'])
def generateSearchResults(search_string = None):
if search_string in data_struct:
return redirect(url_for('displayInfomation', search_string=search_string))
@app.route('/display_results/<search_string>', methods= ['GET', 'POST'])
def displayInfomation(search_string = None):
url_for()
调用将为您填充displayInformation
search_string
视图的有效网址,redirect()
创建一个302重定向状态的响应。