Как отключить кодирование HTML при использовании Контекста в django

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

Так что даже если вы переключитесь на многопоточность, вам придется синхронизировать потоки, чтобы избежать взаимных блокировок и бесконечного ожидания,

Так что мой лучший вариант - использовать встроенную структуру данных python, которая называется очередь

в соответствии с документ

Модуль очереди реализует многопользовательские очереди с несколькими потребителями. Это особенно полезно в многопоточном программировании, когда необходимо безопасно обмениваться информацией между несколькими потоками. Класс Queue в этом модуле реализует всю необходимую семантику блокировки. Это зависит от доступности поддержки потоков в Python,

blockquote>

Несмотря на то, что это многопользовательская, многопользовательская очередь, я предполагаю, что она все равно будет работать для вас как чудо.

Итак, вот что вам нужно сделать

  1. Ваш сервер получает запрос на печать этикетки,
  2. выполнить необходимую обработку / очистку и поместить он в очереди
  3. Рабочий поток извлекает элементы из очереди и выполняет задачу

или, если вы ожидаете, что система будет достаточно большой, вот несколько ссылок, но шаги будут такими же, как указано выше

16
задан Paco 7 September 2013 в 23:37
поделиться

2 ответа

Для выключения его для единственной переменной использовать mark_safe:

from django.utils.safestring import mark_safe

t = loader.get_template("sometemplate")
c = Context({
   'foo': 'bar',
   'url': mark_safe('http://127.0.0.1/test?a=1&b=2'),
})
print t.render(c)

С другой стороны, для общего выключения автовыхода из кода Python используйте autoescape аргумент при инициализации a Context:

c = Context({
   'foo': 'bar',
   'url': 'http://127.0.0.1/test?a=1&b=2',
}, autoescape=False)

Как повернуться [Автоматический выход HTML] от раздела документации покрывает некоторые опции в шаблоне, если Вы сделали бы это там.

21
ответ дан 30 November 2019 в 17:53
поделиться

Или просто используйте "безопасный" фильтр в своем шаблоне.

Кроме того, я не могу подчеркнуть достаточно, как важный это должно быть знакомо с документацией Django; много общих вопросов как это имеют легко находимые ответы и объяснения (как этот), и прочтение документов и получение ощущения того, как все работает, решительно уменьшит количество времени, которое необходимо провести, спрашивают, "почему оно делало это" и увеличивало количество времени, Вы тратите вещи здания, которые работают способ, которым Вы хотите.

9
ответ дан 30 November 2019 в 17:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: