请教:Flask url_for 的 build error
===
最近业余时间写一个 flask 的网站
我所有的 URL RULE 全部写在 `
init_route.py` 里面了,其中有个一带参数的 url 规则是:
from subject import view_subject
app.add_url_rule('/all_subjects/<subject_id>', 'subject', view_subject, methods=['GET', 'POST'])
然后我在另一个 view 的响应函数中最后返回:
return redirect(url_for('view_subject', subject_id = str(subject_id)))
然后报错说: BuildError: ('view_subject', {'subject_id': '2'}, None)
但是注意,view_subject 这个 view 在之前的流程中是有正常显示过的,只是没有用 url_for 来调用。我不理解,这和我在 `
init_route.py` 中以 `add_url_rule` 定义相应函数而不是用 decorator 修饰有关吗?可是,以我的理解,decorator 只能定义想用函数的正上方加上才可以,可是我的响应函数和 `
init_route.py` 不在一个文件,也不该在一个文件。我记得之前在 jinja template 中也出现类似参数的 `url_for` 调用失败,最后我不得不手动拼接 URL。
flask 自己给的例子全是用 decorator,而 flask 关于 `url_for` 的官方文档也没有让我能明白的例子,
例如,如果我的 URL 有三个参数:
from form import display_block
app.add_url_rule('/all_subjects/<subject_id>/<block_name>/<mode>', 'block', display_block)
以上的 url 我在 jinja template 中是用手动拼接来相应的。
真郁闷
求大神帮帮 我感觉我可能有那个常识性的东西没搞
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/60135
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.