Реализуйте f-строку как по волшебству, чтобы прокачать функцию format_html() в Django.Python

Программы на Python
Ответить
Anonymous
 Реализуйте f-строку как по волшебству, чтобы прокачать функцию format_html() в Django.

Сообщение Anonymous »

Я хотел бы реализовать format_html() в Django.
Он уже работает довольно хорошо, но моя IDE (PyCharm) считает, что переменные не используются, и окрашивает их в светло-серый цвет:
Изображение

AFAIK f-строки используют магическое переписывание.
Есть ли способ реализовать это, чтобы IDE знала, что переменные используются?
Связано: реализация синтаксиса, подобного f-строке, с поддержкой Django SafeString
Вот моя текущая реализация:

Код: Выделить всё

def h(html):
"""
Django's format_html() on steroids
"""
def replacer(match):
call_frame = sys._getframe(3)
return conditional_escape(
eval(match.group(1), call_frame.f_globals, call_frame.f_locals))
return mark_safe(re.sub(r'{(.*?)}', replacer, html))
Кто-то выразил обеспокоенность по поводу безопасности: я не планирую создавать CMS, где пользователь сможет редактировать эти шаблоны. Эти h-строки шаблонов предназначены только для того, чтобы у разработчиков был удобный способ создания HTML.
Прежде чем писать ответ, убедитесь, что вы знакомы с магией Conditional_escape()

Подробнее здесь: https://stackoverflow.com/questions/668 ... ormat-html
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»