Ответьте латексным кодом на веб-запрос с помощью django - PullRequest
3 голосов
/ 22 декабря 2011

Я новичок в python для веб-приложений и использую django для первой попытки.Поскольку приложение должно динамически создавать некоторые латексные файлы, я подумал, что наиболее элегантным способом будет возврат латексного файла в виде веб-запроса и динамическое создание содержимого с использованием механизма шаблонов django.Однако синтаксис шаблона состоит из символов ({,% и}), которые также являются специальными символами в латексе.Так что в этом особом случае я бы хотел изменить синтаксис системы шаблонов django.

Мои вопросы:

  1. Как вы думаете, это рекомендуемый способ создания латексных файлов?Или я должен открыть файлы шаблонов с помощью python и просто создать регулярные выражения для всех переменных и так далее.(Я бы действительно предпочел бы способ шаблона django!)
  2. Как я могу изменить способ замены переменных и функций в шаблонах django?Например, {{x}} до << x >> или что-то в этом роде.

Ответы [ 2 ]

6 голосов
/ 22 декабря 2011

AFAIK, язык шаблонов Django не допускает пользовательских синтаксисов. К счастью, есть еще одна подключаемая система шаблонов под названием Jinja2 , которая работает.

Смотрите это сообщение в блоге , чтобы узнать о чьем-либо опыте работы с LaTeX и Jinja2.

Официальные документы Jinja2 по теме.

2 голосов
/ 22 декабря 2011

Вы можете использовать Jinja2, или, может быть, вы можете сделать это, используя систему шаблонов по умолчанию:

Глядя на код для django/template/__init__.py, Вокруг строки 78 (Django 1.2) я увидел это:

75 # template syntax constants
76 FILTER_SEPARATOR = '|'
77 FILTER_ARGUMENT_SEPARATOR = ':'
78 VARIABLE_ATTRIBUTE_SEPARATOR = '.'
79 BLOCK_TAG_START = '{%'
80 BLOCK_TAG_END = '%}'
81 VARIABLE_TAG_START = '{{'
82 VARIABLE_TAG_END = '}}'
83 COMMENT_TAG_START = '{#'
84 COMMENT_TAG_END = '#}'
85 SINGLE_BRACE_START = '{'
86 SINGLE_BRACE_END = '}'

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

Не используйте monkeypatch напрямую, так как изменение этих констант в этом модуле помешает правильному отображению представлений по умолчанию.

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