yupiter7575
@yupiter7575
Python программист

Как перевести строку в html flask?

Допустим есть две страницы. Первая, статичная, в ней находится форма которая предназначена для записи html файлов в бд. Вот как происходит обработка файла:
def OneFile(path):
    with io.open(path, 'r') as f:
        content = f.read()
    soup = bs(content, features='lxml')
    content = str(soup.find('body'))[6:-7]
    images = soup.find_all('img')
    if images != []:
        images = list(map(str, list(images)))
        for i in images:
            img = bs(i, features='lxml').find('body').find('img')
            src = img.get('src')
            src2 = f"{{{{ url_for('static' filename='{str(src)}') }}}}"
            img2 = str(img).replace(str(src), str(src2))
            content = content.replace(str(img), img2)
    return content

Все работает классно, только возникла проблема со второй страницей.
Она является динамической, и на ней показывается, то что возвращает функция выше. Собственно, не тяжело догадаться что вместо html тегов показывается что-то такое: <h1></h1>.
Эту проблему я решил на фронте, а именно написал js скрипт который превращает вот эти символы выше, в html теги. Так в чем заключается вопрос, функция url_for не срабатывает потому что интерпретатору пайтону никто не сказал что, эти символы, это html. Как сделать так чтобы он понял, и jinja сработал?
  • Вопрос задан
  • 410 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Чтобы шаблонизатор flask так не делал, надо использовать фильтр safe.

{{ url_for('static' filename='...')|safe }}

См. также документацию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы