#python #pyramid #chameleon #template-tal
#python #пирамида #хамелеон #шаблон-tal
Вопрос:
Я начал проект с веб-фреймворка Python «Пирамида», используя механизм шаблонов «хамелеон».
Я новичок в этих фреймворках, но я должен использовать его для клиента.
Я следую инструкциям, чтобы установить фреймворк, затем я начал кодировать, просто для целей обучения!
Мое первое приложение было глупым, простым CRUD-приложением.
То, что я делаю, это:
в моем __init__.py
у меня есть для каждого представления следующий код:
config.add_view(‘myenglishdictionary.views.modify’,route_name=’modify_route’,renderer=’templates/base.pt’)
base.pt является основным шаблоном с верхним и нижним колонтитулами и div со следующим кодом:
<div>${body}</div>
в моем файле view.py каждый вид имеет 2 строки, как показано ниже:
body = render('templates/list.pt',{'list':list ,'project':'myProject'}, request=request)
return {'body':body}
и в моем list.pt существует контент, который будет встроен в base.pt
Казалось, все работает хорошо. Но после обновления библиотек теперь я не могу правильно видеть свой шаблон.
Вместо фактического html-кода есть html-объекты:
amp;<div class="clear"amp;>amp;</divamp;>
итак, очевидно, что страница выглядит не очень хорошо.
Проблемы, по-видимому, заключаются в методе рендеринга, поскольку html base.pt шаблон отображается правильно.
Ответ №1:
Использование ${}
синтаксиса позволяет избежать включенного текста по умолчанию (для защиты от атак с использованием XSS-инъекций).
Вместо этого используйте structure:
префикс, чтобы указать механизму рендеринга не экранировать ваш текст:
<div>${structure: body}</div>