Django 模板系统1(模板系统)

1 模板系统(template):向页面中填充内容

(1)模板系统常用符号{{}} 和{% %}
		a:如果在模板中需要解析变量使用{{}}
		b:如果在模板中进行逻辑相关操作使用{%%}
		注释 {#...#} 单行注释
(2)变量
		在Django 的模板系统中变量使用的语法:{{ 变量名}}
		当模板引擎遇到变量,就会用值替换掉变量。
		变量的命名可以是字母数字以及下划线("_")的组合
		变量名称中不能有空格或标点符号。

练习1 :将index 页面中的{{name}}替换为张三

@@demo01.html 文件
	<!DOCTYPE html>
	<html lang="en">
	<head>
  			 <meta charset="UTF-8">
  			 <title>Title</title>
	</head>
	<body>
  			 大家好,我是{{ name }},请大家多多关照!!!
	</body>
	</html>
@@views.py文件
	def demo01(request):
		return render(request,'demo01.html',{'name':'张三'})
@@urls.py文件
	urlpatterns=[
		path('admin/',admin.site.urls),
		path('demo01/',views.demo01)
	]

练习2:将页面中的{{name}},{{age}},{{height}} 替换成具体的值

@@demo01.html 文件
	<!DOCTYPE html>
	<html lang="en">
	<head>
  			 <meta charset="UTF-8">
  			 <title>Title</title>
	</head>
	<body>
  			 大家好,我是{{ name }},今年{{age}}岁了,身高{{height}},请大家多多关照!!!
	</body>
	</html>
@@views.py 文件
	def demo02(request):
	name = '张三'
	age = 19
	height = 1.99
	return render (request,'demo02.html',{'name':name,'age':age,'height':height})
@@urls.py 文件
	urlpatterns=[
			path('admin/',admin.site.urls),
			path('demo02/',views.demo02)
		]
扩展:使用locals()内置函数,获取全部局部变量
	def demo02(request):
		name ='张三'
		age = 19
		height = 1.99
		print(locals())    #{'age': 18, 'name': 张三', ‘height’:1.99	'request': <WSGIRequest: GET '/laowang3/'>}
		return render(request,'demo02.html',locals())

练习3:点(.)的特殊含义

点(.)在模板语言中有特殊的含义。当模版系统遇到点("."),它将以以下顺序查询:
(1)字典查询 :				如果向页面传递的是一个字典类型变量,变量名.key 获取值
(2)属性或方法查询:			如果传递一个对象,变量名.变量名	(此变量名有可能是属性,有可能是无参数方法名称)。
(3)数字索引查询:			如果传递一个列表,变量名.索引。
@@Views.py
	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})

@@Index02.html页面
在这里插入图片描述@@Urls.py文件
在这里插入图片描述注意事项:
如果使用的变量不存在, 它被默认设置为(空字符串) 。

猜你喜欢

转载自blog.csdn.net/yuanzhen1/article/details/89480766