Maison > Questions et réponses > le corps du texte
J'ai récemment développé une application Web utilisant flask, qui possède une page de recherche et une page de résultats. La page de recherche comporte plusieurs formulaires. Actuellement, ces formulaires ont été traités avec succès dans la fonction de routage de la page de recherche et les résultats sont stockés dans. une variable de type liste. À l'intérieur, je souhaite transmettre cette variable à une autre page, qui est la page de résultats, et afficher les résultats. Existe-t-il un moyen de transmettre des paramètres entre les itinéraires ?
@app.route('/search', methods=['get', 'post']) #这是搜索页面
def fsearch():
....
if request.method == 'POST':
results = multiselect(request) #这是处理表单的函数,reslults为list类型变量
...
return render_template("new.html")
@app.route('/result', methods=['get', 'post']) #这是结果页面
def fresult():
...
return render_template("result.html")
淡淡烟草味2017-05-18 10:51:28
Utilisez une variable globale
results = None
@app.route('/search', methods=['get', 'post']) #这是搜索页面
def fsearch():
....
if request.method == 'POST':
global results
results = multiselect(request) #这是处理表单的函数,reslults为list类型变量
...
return render_template("new.html")
@app.route('/result', methods=['get', 'post']) #这是结果页面
def fresult():
global results
print results
return render_template("result.html")
高洛峰2017-05-18 10:51:28
Les demandes correspondent directement aux résultats.
Pourquoi devez-vous faire une autre demande pour obtenir le résultat une fois qu'une demande est terminée ?
淡淡烟草味2017-05-18 10:51:28
Utilisez la fonction de redirection
return redirect(url_for('fresult')), et vous pouvez ajouter des paramètres à la fonction.
怪我咯2017-05-18 10:51:28
@app.route('/search', methods=['get', 'post']) #这是搜索页面
def fsearch():
....
if request.method == 'POST':
results = multiselect(request) #这是处理表单的函数,reslults为list类型变量
....
return return render_template("result.html", results=results)
return render_template("new.html")
phpcn_u15822017-05-18 10:51:28
Pourquoi devez-vous utiliser post ? Vous pouvez vous référer à mon implémentation
class SearchView(MethodView):
def get(self):
query_dict = request.data
page, number = self.page_info
keyword = query_dict.pop('keyword', None)
include = query_dict.pop('include', '0')
if keyword and len(keyword) >= 2:
fields = None
if include == '0':
fields = ['title', 'content']
elif include == '1':
fields = ['title']
elif include == '2':
fields = ['content']
results = Topic.query.msearch(
keyword, fields=fields).paginate(page, number, True)
data = {'title': 'Search', 'results': results, 'keyword': keyword}
return render_template('search/result.html', **data)
data = {'title': 'Search'}
return render_template('search/search.html', **data)
démo