django format_html flatatt 함수

Django에서 자주 사용하는 함수 formathtml, 포맷 생성 html 템플릿
def format_html(format_string, *args, **kwargs):
    """
    Similar to str.format, but passes allarguments through conditional_escape,
    and calls 'mark_safe' on the result. Thisfunction should be used instead
    of str.format or % interpolation to buildup small HTML fragments.
    """
    args_safe = map(conditional_escape, args)
    kwargs_safe = {k: conditional_escape(v) for(k, v) in six.iteritems(kwargs)}
return mark_safe(format_string.format(*args_safe,**kwargs_safe))

문서 설명을 볼 수 있습니다,formathtml은str.format 함수와 유사하며 포맷은 html 요소를 생성한다.
select_html=format_html(‘’,’id=id_birth’)
또 다른 함수flatatt 함수는 사전을 단일 문자열 키="value"로 변환합니다. 예를 들어 {"height":30,"width":20,"required":True}, 문자열 "height=20 widt=30 requried"로 변환합니다.
def flatatt(attrs):
  """
  Convert adictionary of attributes toa single string.
  The returnedstring will contain aleading space followed by key="value",
  XML-stylepairs.It is assumed that the keys do not need to beXML-escaped.
  If thepassed dictionary is empty,then return an empty string.    
  The resultis passed through'mark_safe'.
  """    
  key_value_attrs = []   
  boolean_attrs = []    
  for attr,value in attrs.items():        
    if isinstance(value, bool):            
      if value:               
         boolean_attrs.append((attr,))        
    else:           
      key_value_attrs.append((attr,value))    
    return (
         format_html_join('', ' {}="{}"', sorted(key_value_attrs)) +
         format_html_join('', ' {}', sorted(boolean_attrs))

좋은 웹페이지 즐겨찾기