python django 里如何加载html文件

发布一下 0 0

好嘞,我们继续我们的Django的学习。

先前我们在演示Django程序的时候,我们通过views返回的都是字符串内容,今天我们开始着手返回一个html页面。我们先前也说过了Django是基于mvt模式实现的,views部分我们接触到了,那么能够显示页面的templates该怎么使用呢?带着这些疑问我们开始今天的学习。

Mvt里的templates到底是什么呢?其实templates就是一个特殊的html文件,为啥是特殊的html文件呢?因为我们的template里有一些特殊的内容,这些内容我们把它称之为模板语言。即templates就是普通的html里加上一些模板语言的文件。静态的html我们知道是什么,那么模板语言是什么呢?其实模板语言就是在html里动态显示数据的一种标签语言,语法简单,大多在渲染数据的时候使用。

先说下我们今天的目标:我们要实现一个注册功能页面,然后填入数据,点击注册后,系统回显用户输入的数据。

好嘞,开始创建工程,为了方便,我们直接在先前课程的工程里创建一个app即可。

第一步: 创建一个register app

python django 里如何加载html文件

此刻我们的工程目录结构如下:

python django 里如何加载html文件

第二步:创建一个简单的注册功能html页面

注意,现在我们把所有的html文件都存放在工程目录里的templates目录里,该目录里就是专门用来存放页面元素的。

python django 里如何加载html文件

我们的页面比较简单,大概代码如下所示

python django 里如何加载html文件

其运行效果是这样的:

python django 里如何加载html文件

凑活着看吧,我们重点不在页面效果上,此刻,我们的工程目录里:

python django 里如何加载html文件

第三步:我们想让用户通过http://127.0.0.1:8000/register来访问我们的html文件,那么该怎么设置呢?让用户访问我们templates里的html文件的方法有两种:

第一种: 使用render_to_string 直接读取html文件,然后以string的形式返回给浏览器。代码如下:

python django 里如何加载html文件

我这里定义了一个register视图,那么我们就需要去设置下路由:

python django 里如何加载html文件

好嘞,我们看下效果: http://127.0.0.1:8000/register

python django 里如何加载html文件

嘿,我们直接通过该url就获取到了我们刚才设置的register.html内容了,效果是正常的。说明我们reder_to_string确实读取到了我们的html文件。我们在render_to_string方法调用的时候只说明了模板的名字,没有告诉系统去哪里找啊,系统是如何知道我们的文件在哪的呢?那系统一定有一个默认的模板读取位置的配置项,要不咋能找到呢?我们在工程目录下打开setting.Py文件看看:

python django 里如何加载html文件

哈哈,看到了吧,django已经为render_to_string做了配置了,我们读取的模板都是从该工程目录下的templates读取出来的。如果你把html文件放到其他位置,不做设置,你是无法直接读取的。

python django 里如何加载html文件

python django 里如何加载html文件

第二种获取模板文件的方法: 使用render方法,而不是render_to_string

python django 里如何加载html文件

这里的render方法有两个参数需要赋值,第一个参数是当前请求request对象,我们从视图方法获取即可,第二个参数是模板名。并且render方法也会直接从工程跟目录下的templates目录里获取模板文件,原理跟render_to_string一样。

然后看看运行效果:

python django 里如何加载html文件

后续我们可以直接使用render方法来完成模板文件的渲染哦,目前来讲不用区分render和render_to_string的区别,等后续内容讲完后,自然明白二者的区别了。

这里需要注意的是,一旦我们使用render渲染模板失败,首先要看看setting配置项里是否包含我们模板所在目录,如果包含了才能引用,否则需要把目录路径手动添加到里面。

例如: 我们在app里创建一个templates目录,然后在这个目录里添加一个register1.html文件,看看是否可以渲染出该文件。

python django 里如何加载html文件

视图实现修改下文件名字:

python django 里如何加载html文件

运行看下效果:

python django 里如何加载html文件

那如何才能从app下的templates目录里获取我们的模板文件呢?对了,我们去修改下setting里的配置文件即可,把我们的路径添加到TEMPLATES参数里即可。

python django 里如何加载html文件

哈哈,我们修改完配置文件后,再去访问我们看看效果:

python django 里如何加载html文件

哈哈,发现成功了,我们从app里面的templates读取到了我们的html文件

所以后续如果我们的模板文件没有在根目录下也没关系了,我们可以设置路径啊!

我们设置DIRS参数的时候用到一个BASE_DIR,你现在不需要关注它是什么意思,先用就行,明天我们再说该变量的含义。如果你看不懂DIRS后面的修改,说明你基础又忘光了,赶紧去看我们的第一个系列的内容,编程无他,唯手熟尔,忘了看看就行了。

好了,今天还得去医院取结果,先到这里,明天我们继续后续的操作!

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/66567.html