admin 管理员组文章数量: 887016
本章知识点
1、Django 模板系统介绍
2、Django 模板系统的基本语法
3、使用Django进行前端的模板渲染
1、Django 模板系统介绍
在上节课完成了一个hello world的访问,但是这样的网站没有实际意义,在开始学习今天的知识 之前,我们先回忆一下,学习Python之初学习到的一个知识点,Python的字符串格式化:
这个例子很简单,但和web开发有共同的地方,都是需要将数据展示到具体的格式当中,最明显的实例就是类似腾讯qq空间的网站,我们可以切换好多种表达的方式(皮肤),但是内容是不变的。这样就涉及到了一个表达方式和表达内容的区别,Django当中是通过他的模板系统来完成这一工作的。
2、Django 模板系统的基本语法
Django的模板系统将整个数据展示的功能分为四个步骤
1、构建模板对象
2、构建数据结构
3、模板加载数据
4、前端传递数据
完整代码如下
\QShop\QShop\views.py
我们然后通过制定路由得到效果如下:
\QShop\QShop\urls.py
在上面是最简单的一个例子,接下来深度的学习Django模板系统的语法:
Django的模板系统有以下三种常用元素组成:
1、变量:有双大阔号包围的用于接受变量的元素 {{ example }}
\QShop\QShop\views.py
\QShop\QShop\urls.py
变量除了可以是字符串之外,也可以是列表、元组、字典、或者类,并且变量通过.可以调用到自己不需要传参的任何参数。完整代码如下
\QShop\QShop\views.py
2、标签 标签是有大括号百分号包围的,具有语法规则的元素,常用的标签有以下几种
If标签
\QShop\QShop\views.py
\QShop\QShop\urls.py
If equal标签
\QShop\QShop\views.py
路由不变,直接访问,效果如下
路由不变,直接访问,效果如下
forloop控制
\QShop\QShop\views.py
路由不变,直接访问,效果如下
3、过滤器 在变量当中以竖线作为标识对变量进行修改的元素
Django的过滤器有很多种,我们在后面的课程当中会讲到自定义过滤器,今天课上我们来研究一个特殊的过滤器。
Safe,Django默认情况下,会将后端传递上来的字符串当中的代码自动转义,比如下面这段代码
\QShop\QShop\views.py
\QShop\QShop\urls.py
但是如果使用了safe标签,效果就会有所不同了,
\QShop\QShop\views.py
当然,这个标签要慎用,应为可能导致前端注入
最简单前端注入效果:
\QShop\QShop\views.py
效果如下
3、使用Django进行前端的模板渲染
上面的课程当中,我们学习了Django模板的基础代码,但是把HTML直接写在视图当中并不是一种很好的习惯。所以我们接下来研究的是Django模板系统加载独立的HTML页面。
1、加载HTML文件
1、创建HTML文件目录
首先在项目的根目录下创建一个目录作为静态文件的目录
然后编写HTML
\QShop\templates\index.html
2、配置HTML文件路径
接着配置settings当中的HTML文件加载路径
\QShop\QShop\settings.py
os.path.join(BASE_DIR,“templates”)
这是课程第一次接触到settings配置,我们必须认识到一个settings当中的配置,就是 BASE_DIR,这个是Python os模块获取当前项目的根目录,我们在settings当中的大部分 的路径配置都会用到这条配置。
3、加载HTML文件
\QShop\QShop\views.py
这样访问路由效果如下
效果同样很棒
在此,我们可以将之前学习的模板系统的语法进行一个基本的整合使用。
目标:
定义一个学员介绍的列表页。
首先,定义视图函数,我们在函数当中手动的构建记录学员信息的数据结构
\QShop\QShop\views.py
接着指定路由
\QShop\QShop\urls.py
然后编写前端效果
\QShop\templates\students.html
效果如下:在这里插入图片描述
2、配置静态文件配置
3、进行前端的文件调用
顶部导入
当中使用
当然如果不想每个文件里面都load,我们也可以在settings当中配置
课程总结
1、Django 模板系统介绍
2、Django 模板系统的基本语法
3、使用Django进行前端的模板渲染
版权声明:本文标题:002:Django 模板系统介绍 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1727393476h1113847.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论