тег 'url' для торнадо (python) с параметрами, как в Django Template Language - PullRequest
0 голосов
/ 06 апреля 2020

Как и в Django, мы можем использовать DTL (Django Template Template) {% url 'url_name'%} вместо жесткого кодирования имен URL. Доступно ли что-либо подобное при использовании Tornado (python)?

1 Ответ

1 голос
/ 06 апреля 2020

Вы можете использовать {{ 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)) }}
...