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文件
在这里插入图片描述注意事项:
如果使用的变量不存在, 它被默认设置为(空字符串) 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值