Как организовать код для приложения Flask с несколькими наборами шаблонов

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

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

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

2 Solutions collect form web for “Как организовать код для приложения Flask с несколькими наборами шаблонов”

Ответ на меня 🙂

Я решил использовать это решение:

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/ .

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

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

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

  • UndefinedError: «пользователь» не определен
  • Jinja2 macro import «с контекстом» и глобальными переменными: {% from file.html import macro_name с контекстом%}
  • читатель yaml и jinja2
  • Flask-WTForms: как проверить, требуется ли поле?
  • HTML-шаблоны с использованием Jinja2 - Lost
  • Выполните запрос POST с url_for в Flask
  • создавать уникальные ссылки permenant на основе идентификатора пользователя
  • Pyinstaller Jinja2 TemplateNotFound
  •  
    Interesting Posts for Van-Lav

    перенос python в scala

    Python py2neo SocketError: соединение отказано

    Django: файлы с сортировкой и размещением изображений на моем собственном файловом сервере

    Утилита параметра 'out' в функции numpy

    set_xlim, set_ylim, set_zlim команды в matplotlib не могут скопировать отображаемые данные

    jquery ajax post list добавляет '' к запросуdict в django

    Как создать всемирную уникальную систему GUID / UUID для Mongo с Python?

    Передача содержимого функции другого модуля в Python

    Конечные точки OAuth от Google App Engine, бросающие 400 в производство

    Должен ли скрипт Python определять функцию как главную?

    Проверьте, имеет ли пользователь разрешение в пирамиде (пилоны 2)?

    Интеграция HID-доступа с evdev на linux с использованием Python

    Загрузите таблицу из большого запроса в искровой кластер с помощью сценария pyspark

    В Python в чем разница между «именем класса (object):» и «class name ():«

    pytesseract не работает с одним цифровым изображением

    Python - лучший язык программирования в мире.