我有一个烧瓶应用程序,其中有一个带有表单的模板。它包含2个选项以及用户提交时。它会生成一个像
这样的网址http://127.0.0.1:5000/search/?code=L00&option=cin
所以我得到这两个值:
ta = request.args.get('code', "", type=str)
tb = request.args.get('option', "", type=str)
现在对它进行了一些处理。我生成了结果。有很多结果,所以我应用了分页。问题是我如何形成网址?
@app.route('/search/', defaults={'page': 1})
@app.route('/search/page/<int:page>')
def search(page):
ta = request.args.get('code', "", type=str)
tb = request.args.get('option', "", type=str)
***some processing ***
这不会起作用,因为'/search/page/<int:page>'
这是不对的。我需要这样的东西
'/search/?code=L00&option=cin/page/<int:page>'
现在我怎么得到这个?
我在测试时也试过这个:
with app.test_request_context():
print url_for('search',code='L00',option='cin',page=3)
但它会生成/searcht/page/3?code=L00&option=cin
答案 0 :(得分:2)
你为什么不做这样的事?
@app.route('/search'
def search():
tp = request.args.get('page', 1, type=int)
ta = request.args.get('code', "", type=str)
tb = request.args.get('option', "", type=str)
***some processing ***
页面是一个网址参数,您只需将默认值定义为1.然后您的url_for将生成正确的网址,如
/search?code=L00&option=cin&page=3
答案 1 :(得分:0)
我认为您有两个选择:使用以下方法定义您想要的页面:
'/search/page/<int:page>'
或将您想要的页面定义为另一个查询arg,就像您使用'code'和'option'一样。为什么这两种选择都不适合你呢?
此外,如果你包含一个你最终想要生成的URL的例子,它会有所帮助......我不确定你对此代码的期望是什么:
'/search/?code=L00&option=cin/page/<int:page>'