Django模板用法

简介:

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  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 ,如需转载请自行联系原作者



相关文章
|
6月前
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
65 0
|
3月前
|
存储 缓存 中间件
Django 框架中 Session 的用法
【8月更文挑战第30天】
35 6
|
2月前
|
Java C++ Python
django 模板 过滤器
django 模板 过滤器
|
3月前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
3月前
|
JSON 数据处理 API
Django后端架构开发:视图与模板的正确使用
Django后端架构开发:视图与模板的正确使用
32 1
|
3月前
|
前端开发 Python
Django模板
【8月更文挑战第19天】
31 3
|
3月前
|
自然语言处理 前端开发 数据处理
Django的模板系统
【8月更文挑战第13天】
30 2
|
3月前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
123 0
|
3月前
|
前端开发 数据处理 开发者
解锁Django模板系统终极奥义!揭秘高效前端渲染秘籍,让你的网站秒变炫酷黑科技!
【8月更文挑战第31天】Django作为Python的高级Web框架,内置的模板系统支持动态HTML渲染。本文通过在线书店案例,详细介绍Django模板系统的设置与高效渲染技巧,包括创建模板文件、编写视图函数及URL配置。通过合理使用过滤器、深度查询和模板继承等技巧,提升前端渲染效率和安全性,优化Web应用开发流程。
26 0
|
3月前
|
安全 JavaScript 前端开发
Django入门到放弃之模板及标签
Django入门到放弃之模板及标签