переменная jinja для корневого каталога приложения flashk-app - PullRequest
6 голосов
/ 23 февраля 2012

Я разрабатывал приложение, используя очень простую в использовании систему Flask , и я использовал шаблон jinja для записи группы ссылок, соответствующих страницам во Flask, которые определены чем-то как это:

@app.route(/<var1>/<var2>)
...
...

на тестовом сервере эти ссылки работают очень хорошо, однако, когда я перехожу с тестового сервера на сервер за прокси-сервером, у меня возникает проблема, когда ссылки href не учитывают дополнительное имя каталога, вставленное моим прокси.

#where a link should read:
server:/myapp/<var1>/<var2>
# it acually puts out:
server:/<var1>/<var2>

мой шаблон jinja выглядит следующим образом, но мне интересно, если вместо обратной косой черты есть способ поместить переменную, которая определяет корневой каталог.

{% block navigation %}
{% for record in db.values() %}
 <li><a href="/{{db.name}}/{{record.name}}">{{record.name}}</a></li>
{% endfor %}
{% endblock %}

Любая помощь будет принята с благодарностью. Спасибо команде Flask!

Ответы [ 2 ]

6 голосов
/ 23 февраля 2012

Во-первых, как сказал @reclosedev, вы можете создавать URL-адреса, используя функцию url_for (при условии, что функция просмотра называется myview:

<a href="{{ url_for('myview', var1=db.name, var2=record.name) }}">

Во-вторых, если вы находитесь за обратным прокси-сервером, оберните приложение WSGI с помощью этого декоратора , который обновляет среду запросов, так что Flask генерирует правильные URL-адреса.

3 голосов
/ 23 февраля 2012

Может быть, вы ищете url_for функцию?

<li><a href="{{ url_for('view_func_name', 
                        var1=db.name, 
                        var2=record.name) }}">{{record.name}}</a></li>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...