Excel不相邻列如何打印在一起-英雄云拓展知识分享
129
2023-11-07
【摘要】 本书摘自《Python+3自动化软件发布系统》一书中第2章,第7节,由陈刚、王洪军编著。
2.7.1 Django Template Language 简介
在视图中使用Django 模板之前,先说明一下 DTL, 了解它的工作方式。若想在 Python 代码中使用Django 的模板系统,基本方式如下:先以字符串的形式提供原始 的模板代码,创建 Template 对象。然后在 Template 对象上调用 render() 方法,传入 一系列变量(上下文)。返回的是完全渲染模板后得到的字符串,模板中的变量和模 板标签已经根据上下文求出值了。
下面,进入D:\GIT\django_demo_project\ 目录,运行 python manage shell 命令 进入支持 Django 的 Shell。
进入此 Shell 后,运行如下示例,以便了解 DTL 的基本工作机制。
代码解释:
第1行:导入我们需要的 Template 和 Context 模块
第2行:定义一个 bbs 字典变量,在真正开发当中,上下文的变量是相当灵活的。
第3行:创建一个模板对象,使用{{}}来作变量占位 tag。
第4行:将上下文实例化为第2行定义的 bbs 变量。
第5行:在模板对象上调用render() 方法,传递 Context 实例。这是返回渲染后 的模板的方法,这样会替换模板变量为真实的值和执行块标签。
第6行:可以看到,模板对象中的占位标签,已被Context 中的真实变量替换。
相信经过上面逐行说明,读者已了解了 Django Template 的核心工作机制。接 下来,简要介绍一下 DTL 的几大知识点,留给读者以后备查。笔者一直认为,在学 习的过程中,系统地了解到一门学问涉及的所有知识版图范围是相当重要的,因为这 决定了一个人的视野。
当然,万法归一,一通万法。有人先学细节,最后再来作拼图;有人先大而化之地
系统学习,需要应用时再进入细节。万千法门,适合自己即最好。
有了以上语法,相信读者对于模板代码的阅读,就不存在任何障碍了。
本节讲的,只是如何在 Django Shell 中使用模板,那么如何在项目中正确使用模 板功能呢?请看下一小节。
.7.2 Django Template 加载配置及基本使用
平时我们开发项目时,都会将模板存为一个 HTML 文件,然后通过 Django Template 加载机制,将这些模板加载进内存,以备渲染。为了从文件系统中加载模 板,Django 提供了便利而强大的 API, 力求去掉模板加载调用和模板自身的冗余。 若想使用这个模板加载 API, 首先要告诉框架模板的存储位置。这个位置在 set- tings.py 文件中,找到 TEMPLATES 设置。它的值是一个列表,分别针对各个模板
引 擎 。
https://github.com/aguncn/django_demo_project/blob/master/django_demo_project/set-
tings.Py
BACKEND 的值是一个点分Python 路径,指向实现 Django 模板后端 API 的模 板引擎类。Django 默认实现的内置后端有 django.template.backends.django.
DjangoTemplates 和 django.template.backends.jinja2.Jinja2。
因为多数引擎从文件中加载模板,所以各个引擎的顶层配置包含三个通用的 设置:
① DIRS 定义一个目录列表,模板引擎按顺序在其中查找模板源文件。
② APP_DIRS 设定是否在安装的应用中查找模板。按约定,APPS_DIRS 设为 True 时,DjangoTemplates 会在 INSTALLED_APPS 中的各个应用里查找名为 templates 的子目录。这样,即使 DIRS 为空,模板引擎也能查找应用模板。
③ OPTIONS 是一些针对后端的设置。
下面就通过这种方式,来实现一个带模板功能的 Web 服务网页。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~