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