书签 分享 收藏 举报 版权申诉 / 26
上传文档赚钱

类型PythonWeb开发基础教程-第6章-模板.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3371818
  • 上传时间:2022-08-24
  • 格式:PPTX
  • 页数:26
  • 大小:89.63KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《PythonWeb开发基础教程-第6章-模板.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    PythonWeb 开发 基础教程 模板
    资源描述:

    1、Python Web开发基础教程(Django版)第6章 模板本章主要内容:模板基础模板语言模板继承6.1模板基础本节主要内容配置模板引擎使用模板类使用模板文件6.1.16.1.1配置模板引擎配置模板引擎 模板引擎也称后端(BACKEND)。在项目配置文件settings.py的TEMPLATES变量中配置模板时,使用BACKEND选项配置模板引擎。创建项目时,通常会在settings.py配置文件中添加模板的默认设置 Django的默认模板引擎为django.template.backends.django.DjangoTemplates,其语法为Django模板语言(简称DTL)。djan

    2、go.template.backends.jinja2.Jinja2是另一个Django内置的模板引擎。模板配置中的APP_DIRS默认值为True,表示模板引擎将在项目的所有应用目录中搜索模板文件。也可在DIRS选项中指定搜索路径,示例代码如下。TEMPLATES=BACKEND:django.template.backends.django.DjangoTemplates,DIRS:/html/templates,/html/django,Django会按照DIRS选项中路径的先后顺序搜索模板文件。OPTIONS选项中的context_processors选项用于注册在模板中使用的上下文处

    3、理器。如果配置了多个模板引擎,则按先后顺序依次在各个模板引擎的搜索路径中寻找模板文件。6.1.26.1.2使用模板类使用模板类 dango.template.Template是Django提供的模板类,调用模板类的构造函数Template(),可以快速创建模板对象。调用模板对象的render()方法,可将模板渲染为HTML代码。例如:fromdjango.templateimportTemplate,Context t=Template(你提交的数据为:data)#创建模板对象 context=Context(data:123)#创建上下文对象 t.render(context)#渲染模板 你

    4、提交的数据为:123 构造函数Template()将模板字符串作为参数来创建模板对象。构造函数Context()用字典对象创建上下文对象,用于封装传递给模板的数据。模板对象的render()方法接收上下文对象参数,执行渲染操作,将数据填入模板,生成HTML代码。6.1.36.1.3使用模板文件使用模板文件Template对象适用于处理比较简单的模板。相对复杂的模板则应使用模板文件。模板文件是一个包含了模板语言代码的文本文件。Django对模板文件扩展名没有要求,可以是.html、.txt等,也可以没有扩展名。1 1定义模板文件定义模板文件 例如,下面的模板显示视图传递的时间。使用模板 当前时间

    5、:time 本章示例项目名称为chapter6。默认情况下,模板配置中APP_DIRS值为True,DIRS为空。所以,模板文件需放置在chapter6chapter6templates文件夹中。如果放在其他位置,则需要在DIRS选项中进行设置,否则Django会找不到模板文件。2 2定义使用模板的视图定义使用模板的视图 通常,模板文件不能直接使用,需要在视图中使用。例如,下面的代码定义了使用模板的视图。#chapter6chapter6views.py fromdjango.httpimportHttpResponse fromdatetimeimportdatetime fromdjang

    6、o.template.loaderimportget_template defgetTime(request):time=datetime.today()#准备数据 t=get_template(mytemplate.html)#载入模板文件 html=t.render(time:time)#渲染模板 returnHttpResponse(html)#将模板渲染结果返回客户端 视图首先调用get_template()方法来载入模板,再调用render()方法以渲染模板。在使用Template对象来创建模板时,需使用上下文对象作为render()方法的参数。使用模板文件时,则需使用字典对象作为r

    7、ender()方法的参数。3 3使用使用TemplateResponseTemplateResponseTemplateResponse使用模板文件生成HttpResponse响应,TemplateResponse包含了载入模板和渲染模板操作,需要编写的代码更少,示例代码如下。#chapter6chapter6views.py fromdatetimeimportdatetime fromdjango.template.responseimportTemplateResponse defgetTime2(request):time=datetime.today()returnTemplateR

    8、esponse(request,mytemplate.htm,time:time)4 4使用快捷函数使用快捷函数render()render()django.shortcuts模块中的快捷函数render()与TemplateResponse构造函数类似,使用模板文件和上下文字典来渲染模板,并返回封装响应结果的HttpResponse对象。例如:#chapter6chapter6views.py fromdatetimeimportdatetime fromdjango.shortcutsimportrender defgetTime3(request):time=datetime.today

    9、()returnrender(request,mytemplate.html,time:time)6.2 模板语言 Django模板引擎支持Django模板语言(简称DTL)。DTL包含变量、注释、过滤器、标签、模板继承以及HTML转义等语法。本节主要内容 变量 注释 过滤器 标签:include 标签:for 标签:if6.2.16.2.1变量变量DTL用变量名变量名格式表示变量。变量名由字母、数字和下划线组成,但不能以下划线开头。Django在渲染模板时,会将遇到的变量替换为上下文中对应的变量值。如果变量是对象,可使用点号(.)访问其属性或方法。t=Template(姓名:data.nam

    10、e,年龄:data.age,日期:now)#创建模板 classuser:pass#定义类.u=user()#创建对象 u.name=张三#设置属性 u.age=25#设置数据 d=datetime.now()c=Context(data:u,now:d)#创建上下文 t.render(c)#渲染模板 姓名:张三,年龄:25,日期:July5,2019,10:49a.m.6.2.26.2.2注释注释 DTL用#来表示注释,注释的内容不会出现在渲染结果中,示例代码如下。t=Template(姓名:data.name,#年龄:年龄:data.age#,日期:now)t.render(c)姓名:张三

    11、,日期:July5,2019,10:49a.m.模板中年龄的部分被注释,所以渲染结果中没有年龄信息。被#注释的内容不能换行。要注释多行内容,应使用comment标签 示例代码如下。姓名:name%comment 多行注释多行注释%年龄:age 日期:now%endcomment%6.2.36.2.3过滤器过滤器 过滤器用于改变变量的显示结果。几个常用的过滤器如下。default:设置变量为false或为空时显示的替代值。基本格式为变量|default:替代值。length:返回字符串或列表的长度。基本格式为变量|length。filesizeformat:将数值转换为文件大小格式,如2.5KB

    12、、12MB等。基本格式为变量|filesizeformat。例如:t=Template(数据:a|default:不正确,长度:b|length,文件大小:c|filesizeformat)c=Context(a:False,b:abcd,c:123456)t.render(c)数据:不正确,长度:4,文件大小:120.6xa0KB6.2.46.2.4标签:标签:includeinclude 标签用于完成一些更复杂的操作,如包含模板、控制流程、创建输出文本或者实现模板继承等。include标签用于包含模板,将其他模板代码插入到当前位置,并使用当前模板的上下文进行渲染。include标签的基本格

    13、式如下。%include模板名称%可在包含模板时指定参数,示例代码如下。%includetemplatea.htmlwithdata=abcd%with之后连接的是参数,参数名与模板中的变量名一致。在传递多个参数时,使用空格作为分隔符,示例代码如下。%includetemplatea.htmlwithdata=abcddata2=123%6.2.56.2.5标签:标签:forfor for标签用于构造循环,遍历可迭代对象。在for标签块内部,可使用下列变量。forloop.counter:当前循环的索引,索引从1开始。forloop.counter0:当前循环的索引,索引从0开始。forloo

    14、p.revcounter:反向循环时,当前循环的索引,索引从1开始。forloop.revcounter0:反向循环时,当前循环的索引,索引从0开始。forloop.first:在第一次通过循环时值为真,否则为假。forloop.last:在最后一次通过循环时值为真,否则为假。forloop.parentloop:嵌套循环的外层循环。例如:%forrindata%第forloop.counter行:%forainr%a%endfor%endfor%6.2.66.2.6标签:标签:if if if标签用于构造条件分支,其基本结构如下。%ifvar1%elifvar2%else%endif%eli

    15、f和else块可以省略,elif块可以有多个。Django按先后顺序依次计算if和elif标签的变量,如果变量为“真”(即变量存在、不为空,且不是False),则输出相应的数据块,然后流程跳转到endif标签之后。如果没有变量为“真”,则输出else数据块(如果else数据块存在的话)。在if和elif标签中直接使用变量时,当变量存在、不为空且不是False时,视为“真”。在if和elif标签中可使用下列逻辑运算符。not:逻辑取反,“真”取反为“假”,“假”取反为“真”。例如,%ifnotdata%。and:逻辑与,当两个操作数均为“真”时,结果才为“真”。例如,%ifxandy%。or:逻

    16、辑或,当两个操作数均为“假”时,结果才为“假”。例如,%ifxory%。3个逻辑运算符的优先级从高到低依次为:not、and、or。if和elif标签中可使用下列比较运算符。=:相等。例如,%ifx=y%。!=:不相等。例如,%ifx!=y%。:小于。例如,%ifx:大于。例如,%ifxy%。=:小于等于。例如,%ifx=:大于等于。例如,%ifx=y%。in:操作数x是否包含于y中,y可以是字符串、列表、集合或QuerySet等。例如,%ifxinabcdefg%。notin:不包含于。例如,%ifxnotinabcdefg%。is:两个对象是否相同。例如,%ifxisTrue%。isnot:两个对象是否不相同。例如,%ifxisnotNone%。6.3 模板继承Django支持模板继承,子模板通过继承获得父模板的内容,并且可在子模板中覆盖父模板中的块。父模板用%block%和%endblock%标签定义块。子模板用%extends%标签继承父模板,并通过定义同名的块来覆盖父模板中的块。6.4 实践:用模板实现数据分页本节主要内容

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:PythonWeb开发基础教程-第6章-模板.pptx
    链接地址:https://www.163wenku.com/p-3371818.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库