Как организовать код для приложения Flask с несколькими наборами шаблонов - PullRequest
9 голосов
/ 01 ноября 2011

Я пишу приложение с Flask, и я хотел бы создать другой код для настольных и мобильных браузеров. ИМХО, было бы хорошей идеей сохранить код приложения идентичным и поставить проблему обслуживания разного контента в стеке на уровне шаблонов - так что по сути это становится вопросом написания двух наборов шаблонов для двух вариантов использования и поиска пути выбрать правильный для использования при каждом запросе. Я использую шаблонизатор Jinja2 по умолчанию с Flask.

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

Какой механизм вы бы использовали для решения этой проблемы и обеспечения максимальной чистоты исходного кода?

Ответы [ 2 ]

4 голосов
/ 08 ноября 2011

Я хотел бы указать вам, вероятно, несколько в другом направлении.

Многие дизайнеры и разработчики (включая меня) не видят будущего дизайна веб-сайта в наличии шаблонов * 1004.* разделены, но имеют один шаблон, который динамически реагирует на окружение.То есть он переупорядочивает свои элементы таким образом, который лучше всего подходит для данного дисплея.

Это называется отзывчивый дизайн .Я знаю, что это, вероятно, не то решение, которое вы искали, но оно может стать намного лучше.

4 голосов
/ 08 ноября 2011

Отвечая себе:)

В итоге я воспользовался этим решением:

import flask
# patch flask.render_template()
_render_template = flask.render_template
def _my_render_template(*args, **kwargs):
    if detect_mobile_browser(flask.request.user_agent.string):
        args = ('m/' + args[0],) + args[1:]
    return _render_template(*args, **kwargs)
flask.render_template = _my_render_template

, пока оно работает, и я просто поместил "мобильные шаблоны" в m/подкаталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...