Jinja(템플릿 엔진)
Jinja (template engine)![]() | |
원저작자 | 아르민 로나허 |
---|---|
초기 릴리즈 | 2008년 7월 [1] | , 전(
안정된 릴리스 | 3.1.2[2] / 2022년 4월 ; 전 ( ) |
저장소 | |
기입처 | 파이썬 |
유형 | 템플릿 엔진 |
면허증. | BSD 라이선스 |
웹 사이트 | palletsprojects![]() |
Jinja는 Python 프로그래밍 언어용 웹 템플릿 엔진입니다.Armin Ronacher에 의해 작성되었으며 BSD 라이선스로 라이센스가 부여됩니다.Jinja는 Django 템플릿엔진과 비슷하지만 Python과 같은 식을 제공하며 템플릿이 샌드박스에서 평가되도록 합니다.텍스트 기반 템플릿 언어이므로 소스 코드뿐만 아니라 마크업 생성에도 사용할 수 있습니다.
Jinja 템플릿엔진을 사용하면 태그,[3] 필터, 테스트 및 [4]글로벌을 커스터마이즈할 수 있습니다.또한 Django 템플릿엔진과 달리 Jinja에서는 템플릿디자이너가 객체에 대한 인수를 사용하여 함수를 호출할 수 있습니다.Jinja는 플라스크의 기본 템플릿 엔진이며 Ansible,[6] Trac 및 Salt에서도 사용됩니다.
특징들
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>
원천
- ^ "Jinja2 Release History". Retrieved 24 June 2020.
- ^ "Release 3.1.2".
- ^ "Extensions". Jinja2 Documentation (2.8-dev). Retrieved 2015-05-26.
- ^ "Extensions". Jinja2 Documentation (2.8-dev). Retrieved 2015-05-26.
- ^ DuPlain, R. (2013). Instant Flask Web Development. Packt Publishing. p. 30. ISBN 978-1-78216-963-5. Retrieved 2015-05-26.
- ^ "Templating (Jinja2) — Ansible Documentation".
- ^ "Welcome Jinja2 (The Python Template Engine)". palletsprojects.com/p/jinja.
- ^ 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.