tgoop.com/PythonPortal/4350
Create:
Last Update:
Last Update:
PEP 750 вводят t-строки — это как f"..." но:
- интерполяция ограничена и контролируема;
- поддерживается строгое соответствие шаблону;
- можно передавать переменные явно, предотвращая SQL-инъекции и XSS.
Для чего? Для того, чтобы писать shell-команды, SQL, HTML и т.д. без риска инъекций и без ручного экранирования
Пример:
from string.templatelib import Template
name = "World"
template: Template = t"Hello, {name}!"
safe_output = html(template)
Здесь
html()
— это функция, которая принимает объект Template
и возвращает безопасную строку, экранируя потенциально опасные вставкиPEP 787 предлагает добавить это прямо в
subprocess
и shlex
(но пока в статусе "отложен")Следим за развитием