有时web开发需要将数据展示到具体的格式当中,最明显的实例就是类似腾讯qq空间的网站,我们可以切换好多种表达的方式(皮肤),但是内容是不变的。这样就涉及到了一个表达方式和表达内容的区别,Django当中是通过他的模板系统来完成这一工作的。
1.模板系统常用符号{{}}和{%%}
如果在模板中需要解析变量使用{{}}.
如果在模板中进行逻辑相关操作使用{%%}.
注释 {# ... #},只能注释单行。
2.变量
在Django的模板系统中按此语法使用:{{ 变量名 }}。
当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。
3.练习
index.html文件内容:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p> 谨定于{{ year }}年公历{{ month }}月{{ day }}日({{ week }}) 农历{{ calendar }}为{{ groom }}、{{ bride }}举行婚礼敬备薄酒酌恭候{{ sir }}、{{ mrs }}夫妇光临{{ hotel }}大酒店, 地址:{{ address }} 敬约 恕邀 时间:下午{{ time }}时恭候 </p> </body> </html>
views.py文件内容:
from django.shortcuts import render def index(request): data = { "year": "2018", "month": "12", "day": "29", "week": "星期一", "calendar": "三月初一日", "groom": "美羊羊", "bride": "喜羊羊", "sir": "灰太狼", "mrs": "红太狼", "hotel": "杨村", "address": "杨村青草路杨村大酒店2楼", "time": "17:30" } return render(request,'index.html',data)
urls.py文件内容:
from django.contrib import admin from django.urls import path from dj02模板系统 import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), ]
点(.)在模板语言中有特殊的含义。当模版系统遇到点("."),它将以这样的顺序查询:
字典查询(Dictionary lookup)-->如果向页面传递的是一个字典类型变量,变量名.key 获取值
属性或方法查询(Attribute or method lookup)-->如果传递一个对象,变量名.变量名(此变量名有可能是属性,有可能是无参数方法名称)。
数字索引查询(Numeric index lookup)-->如果传递一个列表,变量名.索引。