python jinja2 템플릿 사용 예시

3600 단어 pythonjinja2

템플릿의 용도


jinja2는 프로필을 수정할 수 있으며, 프로필의 관건적인 부분을 변수로 바꿀 수 있습니다

템플릿 구문


템플릿 문법과 django의 템플릿 문법 차이는 jinja2에 많지 않고 세 가지 문법이 존재한다.
  • 제어 구조 {%}
  • 변수 값 {}}
  • 주석 {#}
  • 순환을 위해
  • 
    {% for user in users %}
    {{user.username}}
    {% endfor %}
    
    반복 자전
    
    {% for key,value in my_dict.iteritems() %}
    {{ key }}
    {{ value }}
    {% endfor %}
    
    여과기
    일반적인 필터는 다음과 같습니다.
  • 안전: 렌더링 시 값이 바뀌지 않습니다
  • capitialize: 값의 자모를 대문자로 바꾸고 다른 자모는 소문자로 변환합니다
  • lower: 값을 소문자로 변환합니다
  • upper: 값을 대문자로 변환합니다
  • title: 값의 모든 단어의 자모를 대문자로 변환합니다
  • trim: 값의 앞뒤 공백을 제거합니다
  • striptags: 렌더링하기 전에 값의 모든 HTML 탭을 삭제합니다
  • join: 여러 개의 값을 문자열로 결합합니다
  • replace: 문자열의 값을 바꿉니다
  • round: 기본적으로 숫자를 반올림하거나 매개 변수로 제어할 수 있습니다
  • int: 값을 정형으로 변환합니다
  • 
    {{ 'abc' | catialize }}
    # Abc
    

    계승과 슈퍼 함수

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      {% block head %}
      <link rel="stylesheet" href="style.css" rel="external nofollow" />
      <title>{% block title %}{% endblock %} - My Webpage</title>
      {% endblock %}
    </head>
    <body>
    <div id="content">{% block content %}{% endblock %}</div>
    <div id="footer">
      {% block footer %}
      <script>This is javascript code </script>
      {% endblock %}
    </div>
    </body>
    </html>
    
    
    {% extend "base.html" %}    #  base.html 
     
    {% block title %} Dachenzi {% endblock %}  #  title 
     
    {% block head %}
      {{ super() }}    #  
      <style type='text/css'>
      .important { color: #FFFFFF }
      </style>
    {% endblock %}  
     
    #  
    

    jinja2를 이용하여 렌더링


    jinja2 모듈에는 Enviroment라는 클래스가 있습니다. 이 클래스의 실례는 설정과 전역 대상을 저장하고 파일 시스템이나 다른 위치에서 템플릿을 불러오는 데 사용됩니다.
    1. 기본 사용 방법
  • PackageLoader: 패키지 캐리어
  • FileSystemLoader: 파일 시스템 로더
  • 2.PackageLoader
    패키지 로더를 사용하여 문서를 로드하는 가장 간단한 방법은 다음과 같습니다.
    
    from jinja2 import PackageLoader, Environment
    env = Environment(loader=PackageLoader('python_project', 'templates')) #  
    template = env.get_template("base.html") #  
    template.render(name="daxin", age=18)
    
  • PackageLoader () 두 가지 테스트는python 패키지의 이름과 템플릿 디렉터리 이름입니다
  • get_template (): 템플릿 디렉터리에 있는 구체적인 파일을 가져옵니다
  • render (): 변수를 받아들여 템플릿을 렌더링합니다.
  • 3.FileSystemLoader
    파일 시스템 로더, 템플릿 파일이 필요 없는Python 패키지 아래에서 시스템에 있는 파일에 직접 액세스 가능
    
    import os
    from jinja2 import PackageLoader, Environment, FileSystemLoader
    path_dir = "/mnt/e/files"
    loader = FileSystemLoader(searchpath=path_dir)
    env = Environment(loader=loader)
    template = env.get_template("index.opf") #  
    buf = template.render(name="daxin", age=18)
    with open(os.path.join("path_dir", "index.opf"), "w" ) as fp:
      fp.write(buf)
    
  • FileSystemLoader (): searchpath 매개 변수 뒤에 파일이 있는 디렉터리가 있습니다
  • get_template (): 템플릿 디렉터리에 있는 구체적인 파일을 가져옵니다
  • render () 는 변수를 받아들여 템플릿을 렌더링합니다
  • 렌더링된 내용은 구성 파일에 저장할 수 있습니다
  • 이상은pythonjinja2 템플릿의 사용 예시에 대한 상세한 내용입니다. 더 많은pythonjinja2 템플릿에 대한 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기