django模板原理
# 创建template对象,由context对象传递template所需要的值, 有render方法进行模板的呈现
# 写模板,创建 Template 对象,创建 Context , 调用 render() 方法。
# Python 字符串都有 upper() 和 isdigit() 方法,你在模板中调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# 执行变量 {{ abc }} # 判断 { % if x > 0 % }
{ % else % }
{ % endif % }
例: { % if today_is_weekend % }
<p>Welcome to the weekend!< / p>
{ % endif % }
注意: 模板中不能包括 () { % if athlete_list or coach_list % }
There are some athletes or some coaches.
{ % endif % }
# 循环 { % for i in items_list % }
例: { % for athlete in athlete_list reversed % }
<li>{{ athlete.name }}< / li>
{ % empty % }
<p>There are no athletes. Only computer programmers.< / p>
{ % endfor % }
# forloop的一个用法 # forloop循环的结构控制语法 { % for link in links % }{{ link }}{ % if not forloop.last % } | { % endif % }{ % endfor % }
# forloop实现结构控制的变量 forloop.parentloop.counter 父计数器 # forloop.counter 当前计数器 接下来可以采用 if 进行逻辑控制 { % for country in countries % }
<table>
{ % for city in country.city_list % }
<tr>
<td>Country #{{ forloop.parentloop.counter }}</td>
<td>City #{{ forloop.counter }}</td>
<td>{{ city }}< / td>
< / tr>
{ % endfor % }
< / table>
{ % endfor % }
# 比较两个变量的值 { % ifequal section 'sitenews' % }
<h1>Site News< / h1>
{ % else % }
<h1>No News Here< / h1>
{ % endifequal % }
#注释及多行注释 { # This is a comment #}
{ % comment % }
This is a
multi - line comment.
{ % endcomment % }
# 过滤器之后管道给lower ,,, truncatewords {{ name | lower }} {{ pub_date | date: "F j, Y" }}
# 模板加载 import os.path
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), 'templates' ).replace( '\\',' / '),
) from django.shortcuts import render_to_response
return render_to_response( 'current_datetime.html' , { 'current_date' : now})
# 模板的继承 base.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" >
<html lang = "en" >
<head> <title>{ % block title % }{ % endblock % }< / title>
< / head>
<body> <h1>My helpful timestamp site< / h1>
{ % block content % }{ % endblock % }
{ % block footer % }
<hr>
<p>Thanks for visiting my site.< / p>
{ % endblock % }
< / body>
< / html>
{ % extends "base.html" % }
{ % block title % }The current time{ % endblock % }
{ % block content % }
<p>It is now {{ current_date }}.< / p>
{ % endblock % }
|
本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1532424,如需转载请自行联系原作者