переменная рендеринга питона python как текст, а не html

У меня возникли проблемы с python для бутылок, где у меня есть следующий код

import glob import os from bottle import run, route, error, template from Find_Posts import hyperlink_postnames currentdir = os.getcwd() def hyperlink_postnames(): hyperlink_filelist = [] os.chdir(currentdir + "\\Blog_Posts\\") for files in glob.glob("*.txt"): hyperlink_filelist.append('<a href = "/blog/' + files + '"' + '>' + str(os.path.splitext(files)[0]) + '</a>') return hyperlink_filelist 

который возвращает следующий список

 ['<a href = "/blog/post1.txt">post1</a>', '<a href = "/blog/post2.txt">post2</a>', '<a href = "/blog/post3.txt">post3</a>', '<a href = "/blog/post4.txt">post4</a>', '<a href = "/blog/post5.txt">post5</a>', '<a href = "/blog/post6.txt">post6</a>'] 

который, в свою очередь, подается на следующий маршрут бутылочки:

 @route('/blog/') def postnames(): postlist = hyperlink_postnames() tpl_out = template('blogroll', postlist = postlist) return tpl_out 

который загружается в шаблон blogroll.tpl:

 <!DOCTYPE html> <div> <p><b>Blog Roll</b></p> %for postlist in postlist: <li> {{ postlist }} %end </div> 

моя проблема заключается в том, когда я создаю шаблон в браузере, он превращает переменную postlist в шаблон в обычный текст, а не html (это то, что написано внутри списка). Однако, если я изменю код бутылки, чтобы читать как это (минуя шаблон ) он отображает переменную postlist как html, но не внутри шаблона, что делает код бесполезным:

 @route('/blog/') def postnames(): postlist = hyperlink_postnames() tpl_out = template('blogroll', postlist = postlist) return postlist #return the variable directly bypassing the template renders the list as html 

есть ли у кого-нибудь какие-либо идеи относительно того, почему это происходит?

One Solution collect form web for “переменная рендеринга питона python как текст, а не html”

Специальные символы HTML автоматически экранируются, чтобы предотвратить атаки XSS.

Используйте восклицательный знак в начале утверждения вашего шаблона, чтобы указать, что вы действительно хотите включить HTML:

 %for postlist in postlist: <li> {{ !postlist }} %end 

См. Документацию по встроенным операторам .

  • Проблемы с sys.stdout.write () с функцией time.sleep () в функции
  • Каковы некоторые рекомендации по структурированию вишневых приложений?
  • Пирамида: простая форма или деформирование?
  • Пустой генератор
  • Безопасное литье в python
  • Использование пиксельных шрифтов в PIL
  • Рамка для бутылок - как остановить?
  • Unpickling mid-stream (python)
  •  
    Interesting Posts for Van-Lav

    Python добавить заголовок в файл csv

    многопроцессорный пул зависает, когда есть исключение в любом из потоков

    Python TA-Lib не работает с пандами

    Метод openerp create () возвращает новый идентификатор набора записей, но не обновляет базу данных

    Werkzeug и состояние класса с Flask: как переменные-члены класса перезагружаются, когда класс не повторно инициализируется?

    Какова законность скремблирования данных YouTube?

    Как строить события вовремя при использовании matplotlib

    Python threading.Thread можно остановить только с помощью частного метода self .__ Thread_stop ()

    MySQL Connector / Python InterfaceError: «Не удалось разобрать пакет EOF»

    соглашение с кодом python с использованием pylint

    Python: преимущества и недостатки _mysql vs MySQLdb?

    Хранение данных из файла CSV в базу данных

    Flask: TypeError: объект 'int' не может быть выдан

    IPC (межпроцессное взаимодействие) между python и java

    зацикливание некоторого ips из файла в python?

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