Исходный код для django.utils.safestring

"" " 
Функции для работы с« безопасными строками »: строки, которые можно безопасно отображать 
без дальнейшего экранирования в HTML. Пометка чего-либо как« безопасная строка »означает, 
что производитель строки уже обратил символы, которые не 
должны интерпретироваться Механизм HTML (например, '<') в соответствующие объекты. 
"" "

from  functools  import  wraps


class  SafeData : 
    def  __html__ ( self ): 
        "" " 
        Возвращает html-представление строки для взаимодействия.

        Это позволяет другим механизмам шаблонов понимать SafeData Django. 
        "" " 
        вернуть  себя


[docs] class SafeString ( str , SafeData ): "" " Подкласс str, специально помеченный как" безопасный "для вывода HTML . " "" def __add__ ( self , rhs ): "" " Соединение безопасной строки с другая безопасная строка байтов или безопасная строка безопасна. В противном случае результат больше не является безопасным. "" " t = super () . __add__ ( rhs ), если isinstance ( rhs , ): вернуть SafeString ( t ) return t def __str__ ( self ): вернуть себя
SafeText = SafeString # Для обратной совместимости с Django 2.0. def _safety_decorator ( security_marker , func ): @wraps ( func ) def wrapped ( * args , ** kwargs ): return safety_marker ( func ( * args , ** kwargs )) завернутый return
[docs] def mark_safe ( s ): "" " Явно помечает строку как безопасную для целей вывода (HTML). Возвращенный объект можно использовать везде, где подходит строка. Если используется в методе в качестве декоратора, отметьте возвращаемые данные как безопасные. Может вызываться несколько раз для одной строки. "" " if hasattr ( s , '__html__' ): return s if callable ( s ): return _safety_decorator ( mark_safe , s ) return SafeString ( s )

Copyright ©2020 All rights reserved