【发布时间】:2015-10-26 07:21:16
【问题描述】:
我在 Flask/python 中有以下代码,其中涉及一个变量 years,它是一个整数列表。但是,当我使用return redirect(url_for(... 时,年份变为 unicode,如果是 [2015, 2014],则变为 '[','2','0','1','5',' ' 等。 ..
@main.route('/search', methods=('GET','POST'))
def fysearch():
form = SelectYear()
if form.validate_on_submit():
years = form.years.data
return redirect(url_for('.yearresults', years=years))
return render_template('select_year.html', form=form)
当我打印以上年份每个元素的类型时,它是我想要的普通 int。一旦它被传递到重定向 url_for,那就是年变成 unicode 的时候。
@main.route('/searchresults/<years>')
def yearresults(years):
page = request.args.get('page', 1, type=int)
print type(years)
pagination = Grant.query.filter(Grant.fy.in_(years)).\
paginate(page, per_page=current_app.config['POSTS_PER_PAGE'],
error_out=False)
return render_template('yearresults.html', years=years, entries=pagination.items, pagination=pagination
我知道有一些方法可以在将整数列表传递给 yearresults(years) 之后将其恢复为整数列表,例如 years=json.loads(years) 或替换 [ 和 ] 并拆分,但我想知道是否有是解决此问题的另一种方法。我在 url 路由中考虑过一个转换器,但我不确定它是如何工作的,因为我使用的是烧瓶蓝图。
提前致谢!
【问题讨论】:
标签: python flask url-routing