jinja-docs.pdf

(377 KB) Pobierz
Jinja2 Documentation
Release 2.8-dev
June 05, 2013
1171791534.001.png
CONTENTS
I
Jinja2 Documentation
1
1
Introduction
3
1.1
Prerequisites
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Installation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3
Basic API Usage
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.4
Experimental Python 3 Support
. . . . . . . . . . . . . . . . . . . . . . .
5
2
API
7
2.1
Basics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.2
Unicode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
High Level API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.4
Autoescaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.5
Notes on Identifiers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.6
Undefined Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.7
The Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.8
Loaders
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.9
Bytecode Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.10
Utilities
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.11
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.12
Custom Filters
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.13
Evaluation Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.14
Custom Tests
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.15
The Global Namespace
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.16
Low Level API
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
2.17
The Meta API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3
Sandbox
35
3.1
API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.2
Operator Intercepting
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
4
Template Designer Documentation
39
4.1
Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
4.2
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
4.3
Filters
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
4.4
Tests
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
4.5
Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
i
4.6
Whitespace Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4.7
Escaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.8
Line Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.9
Template Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.10
HTML Escaping
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
4.11
List of Control Structures
. . . . . . . . . . . . . . . . . . . . . . . . . . .
48
4.12
Import Context Behavior
. . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.13
Expressions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.14
List of Builtin Filters
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
4.15
List of Builtin Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.16
List of Global Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.17
Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
4.18
Autoescape Extension
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
5
Extensions
73
5.1
Adding Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.2
i18n Extension
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.3
Expression Statement
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.4
Loop Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.5
With Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
5.6
Autoescape Extension
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
5.7
Writing Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
6
Integration
91
6.1
Babel Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
6.2
Pylons
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
6.3
TextMate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
6.4
Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
7
Switching from other Template Engines
93
7.1
Jinja1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
7.2
Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
7.3
Mako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
8
Tips and Tricks
99
8.1
Null-Master Fallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
8.2
Alternating Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
8.3
Highlighting Active Menu Items . . . . . . . . . . . . . . . . . . . . . . . 100
8.4
Accessing the parent Loop
. . . . . . . . . . . . . . . . . . . . . . . . . . 100
II
Additional Information
101
9
Frequently Asked Questions
103
9.1
Why is it called Jinja?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.2
How fast is it? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.3
How Compatible is Jinja2 with Django? . . . . . . . . . . . . . . . . . . . 103
9.4
Isn’t it a terrible idea to put Logic into Templates? . . . . . . . . . . . . . 104
9.5
Why is Autoescaping not the Default? . . . . . . . . . . . . . . . . . . . . 104
ii
9.6
Why is the Context immutable?
. . . . . . . . . . . . . . . . . . . . . . . 105
9.7
My tracebacks look weird. What’s happening? . . . . . . . . . . . . . . . 105
9.8
Why is there no Python 2.3 support? . . . . . . . . . . . . . . . . . . . . . 106
9.9
My Macros are overridden by something . . . . . . . . . . . . . . . . . . 106
10 Jinja2 Changelog 107
10.1 Version 2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
10.2 Version 2.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.3 Version 2.5.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.4 Version 2.5.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.5 Version 2.5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.6 Version 2.5.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.7 Version 2.5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.8 Version 2.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.9 Version 2.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.10 Version 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.11 Version 2.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.12 Version 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.13 Version 2.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.14 Version 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.15 Version 2.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
10.16 Version 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
10.17 Version 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
10.18 Version 2.0rc1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Index
115
iii
Zgłoś jeśli naruszono regulamin