url_for(endpoint)方法中传递一个endpoint,我知道这个endpoint写上定义视图的方法名就可以了,比如有:
@app.route('/')
def index:
pass
则可以写成url_for(index)
但我的项目中我是使用的MethodView来定义的视图,方法名就是get,如下:
class PostView(MethodView):
def get(self, oid=None):
pass
下面添加了url规则:
xx.add_url_rule('/post/<oid>/', view_func=PostView.as_view('post'))
象这种情况,我如何在template中使用url_for来生成url呢?
PS. url_for() 的 _method 参数是在 flask 0.9 时加上去的。在之前的版本中,url_for() 不支持 MethodView
参考链接: http://flask.pocoo.org/mailinglist/archive/2011/11/2/url-for-matching/
这里有 Flask 作者对这个问题的解答(就是 Armin Ronacher 给出的那条回复)
又一个PS. 在 Google 里搜"MethodView url_for()",第一条结果就是上面给出的链接。 所以,碰到问题多用 Google 搜一搜,往往能更快把它解决哦。