Jinja(템플릿 엔진)

Jinja (template engine)
진자
Jinja software logo.svg
원저작자아르민 로나허
초기 릴리즈2008년 7월 17일, 14년 전(2008-07-17)[1]
안정된 릴리스
3.1.2[2] / 2022년 4월 28일; 3개월 전 (2022년 4월 28일)
저장소
기입처파이썬
유형템플릿 엔진
면허증.BSD 라이선스
웹 사이트palletsprojects.com/p/jinja/ Edit this on Wikidata

Jinja는 Python 프로그래밍 언어용템플릿 엔진입니다.Armin Ronacher에 의해 작성되었으며 BSD 라이선스로 라이센스가 부여됩니다.Jinja는 Django 템플릿엔진과 비슷하지만 Python과 같은 식을 제공하며 템플릿이 샌드박스에서 평가되도록 합니다.텍스트 기반 템플릿 언어이므로 소스 코드뿐만 아니라 마크업 생성에도 사용할 수 있습니다.

Jinja 템플릿엔진을 사용하면 태그,[3] 필터, 테스트 및 [4]글로벌을 커스터마이즈할 수 있습니다.또한 Django 템플릿엔진과 달리 Jinja에서는 템플릿디자이너가 객체에 대한 인수를 사용하여 함수를 호출할 수 있습니다.Jinja는 플라스크의 기본 템플릿 엔진이며 Ansible,[6] TracSalt에서도 사용됩니다.

특징들

Jinja의 특징은 다음과 같습니다.[7]

  • 샌드박스 실행
  • 자동 HTML 이스케이프를 통해 사이트 스크립팅(XSS) 공격 방지
  • 템플릿 상속
  • 최적의 Python 코드로 컴파일 할 수 있습니다.
  • 사전 템플릿 컴파일(옵션)
  • 디버깅이 용이함(예외의 행번호가 템플릿의 올바른 행을 직접 가리킴)
  • 설정 가능한 구문

Jinja도 Smarty와 마찬가지Unix 파이프라인과 마찬가지로 사용하기 쉬운 필터 시스템을 갖추고 있습니다.

다음은 템플릿 파일의 작은 예입니다.example.html.jinja다음과 같습니다.[8]

<!DOArmorPE html> <html> <title> {variable escape }}</title> {/head> {%-, {% endif %}, {% endif %} {%-for %} </body>

템플릿 코드:

부터 진자2 수입품 템플릿 와 함께 열다.('138.199.jinja') ~하듯이 f:     TMPL = 템플릿(f.읽어주세요()) 인쇄물(TMPL.표현하다(     변수 = '<안전하지 않은> 데이터와의 가치',     item_list(항목_리스트) = [1, 2, 3, 4, 5, 6] )) 

그러면 HTML 문자열이 생성됩니다.

<!DO3}PE html> <html> <title> </title> </title> </title> <본문> 1, 2, 3, 4, 5, 6 </html>

원천

  1. ^ "Jinja2 Release History". Retrieved 24 June 2020.
  2. ^ "Release 3.1.2".
  3. ^ "Extensions". Jinja2 Documentation (2.8-dev). Retrieved 2015-05-26.
  4. ^ "Extensions". Jinja2 Documentation (2.8-dev). Retrieved 2015-05-26.
  5. ^ DuPlain, R. (2013). Instant Flask Web Development. Packt Publishing. p. 30. ISBN 978-1-78216-963-5. Retrieved 2015-05-26.
  6. ^ "Templating (Jinja2) — Ansible Documentation".
  7. ^ "Welcome Jinja2 (The Python Template Engine)". palletsprojects.com/p/jinja.
  8. ^ Ronacher, Armin. "Template Designer Documentation". Jinja2 Documentation. Retrieved 7 January 2016. A Jinja template doesn’t need to have a specific extension: .html, .xml, or any other extension is just fine.

외부 링크