模板系统
1常用符号
如果在模板中需要解析变量使用{{}}.
如果在模板中进行逻辑相关操作使用{%%}
注释 {# … #},单行注释。
1)变量
在Django的模板系统中变量使用的语法:{{ 变量名 }}。
当模版引擎遇到变量,就会用值替换掉变量。
变量的命名可以是字母数字以及下划线 ("_")的组合。
变量名称中不能有空格或标点符号。
例:将代码中的name带换成粉刷将
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>你姑拉丝赵四</title>
</head>
<body>
<h1>我是一个{{name}}</h1>
</body>
</html>
先定义一个函数:
from django.shortcuts import HttpResponse,render
import os
import datetime
def songda(request):
return render(request,'songda1.html',{'name':'粉刷将'})
再将‘’粉刷将‘’传输到网页
from django.contrib import admin
from django.urls import path
from lianxi import views
urlpatterns = [
path('admin/', admin.site.urls),
path('songda/',views.songda)
]
内置函数locals()
locals可以将一串已经赋值的变量整合成为一个字典;
def sonda3(request):
name='粉刷将'
age=5
height=60
locals()
return render(request,'songda2.html',locals())
2).点(.)的特殊含义
点(.)在模板语言中有特殊的含义。当模版系统遇到点("."),它将以以下顺序查询:
字典查询 :如果向页面传递的是一个字典类型变量,变量名.key 获取值
属性或方法查询:如果传递一个对象,变量名.变量名
(此变量名有可能是属性,有可能是无参数方法名称)。
数字索引查询:如果传递一个列表,变量名.索引。
def index02(request):
"""传递字典参数"""
data = {'name': '雷老五'}
return render(request, 'index02.html', {'data': data})
class Person(object):
def __init__(self, name):
self.name = name
def dream(self):
return "{}的梦想是做一名老师".format(self.name)
def index03(request):
"""传递对象"""
person = Person('张三')
return render(request, 'index02.html', {'person': person})
def index04(request):
"""传递列表"""
lst = ['zs', 'ls', 'ww']
return render(request, 'index02.html', {'lst': lst})