与Django一样,我们可以使用DTL(Django模板语言({%url'url_name'%}而不是硬编码url名称。在使用Tornado(python(时,有这种类型的东西可用吗?
您可以使用{{ reverse_url('login') }}
。也就是说,模板表达式而不是指令。语法参考在这里(很简短(。
例如,
要命名URL,您需要完整的URLSpec
对象——请参阅此处的
在这个特定的例子中,您可以很容易地使用助手tornado.web.url
函数:
from tornado.web import url
urls = [
url(r"/", IndexHandler, name="home"),
]
并且在模板中访问它就像
<a class="navbar-brand navbar-right" href="{{reverse_url('home')}}">
更新:要通过参数,请按照下面的方法进行操作。
使用reverse_url构造基本url,然后添加查询参数。示例
{{ reverse_url("web-html", "list-builds") + "?" + urlencode(dict(bundle_identifier=app.bundle_identifier)) }}