Django2.0学习(二)————使用模板显示内容

前言

使用模板显示内容

通过修改article_id访问页面

在这里插入图片描述在这个文件中有唯一标识:
这个唯一标识的作用就是通过一个处理方法,去响应不同文章链接。

在这里插入图片描述
之前再view.py中写过一个处理方法,
给一个参数返回什么处理方法。
在这里插入图片描述
这里还没有定义用什么网址去访问,我们定义一下:
在这里插入图片描述
完成了之后我们把网站开始跑起来:
在这里插入图片描述
查看结果:
在这里插入图片描述
进入django的后台admin:

在这里插入图片描述
我们引用一个models里面定义的模型:

在这里插入图片描述

通过模型id对应每一条的记录(model)

这就涉及到objects了,通过这个对象去获取对应的数据或者是新增编辑
在这里插入图片描述
我们这里要先用到get,
在这里插入图片描述
接着,直接自动重启了。我们打开后台界面可以看一下:

在这里插入图片描述
也可以加入文章内容:
在这里插入图片描述
各种样式可以通过html自定义。

问题:
如果在url中输入不存在的article_id,会出现什么情况。
在这里插入图片描述
处理的话就是在view.py中判断异常。
在这里插入图片描述
界面显示:
在这里插入图片描述
在这里,我们发现我们的html样式文件,和后端文件混杂在了一起。不方便后期的扩展与维护。
在这里插入图片描述
我们可以将html文件分离出来。

使用模板分离html文件(template)

在这里插入图片描述
在article中创建templates文件夹:
在这里插入图片描述
具体的设置在settings里面:
在这里插入图片描述
在templates里面创建模板文件:
在这里插入图片描述

但是思考一下如何将要用到的信息传递到模板里面?
render会产生一个respond响应,将信息传递给其它页面。同时需要三个参数(request,模板页面的地址,返回什么变量过去【字典】)

在这里插入图片描述
在这里我们也可以不用它提供的方法,我们可以用别的方法。
在这里插入图片描述
查看结果页面:

在这里插入图片描述
在view文件的头部,我们还可以添加别的引用。

位置在python的安装目录:
在这里插入图片描述
在文件中:
在这里插入图片描述
如何使用这个方法呢?
看上面的函数,给一个模型和一个条件就可以了。
编写view文件:
在这里插入图片描述
现在,基本功能可以使用,但是需要用户手动在网址页面输入,用户也不知道有几页,所以我们应该有个文章列表来让用户选择。

设置文章列表

文章列表不同于之前,它也需要一个文章id,然后直接访问固定网址就行。
我们需要创建一个专门的处理方法。
在这里插入图片描述
首先,在全局的url界面中做声明,且引入方法:
在这里插入图片描述
在templates下面面积html文件:
在这里插入图片描述
views文件:
在这里插入图片描述
结果显示:
在这里插入图片描述
在这里插入图片描述

分离总url文件(urls.py)

一个网站不可能只有一个应用,它可能有很多应用且比较复杂:
比如登录页面等等。
在这里插入图片描述
所以将所有网页都放到全局url文件中就不方便。我们把他们分离出来。
我们在app应用之内,新建一个url.py文件

在这里插入图片描述
编辑文件:
因为子文件也是一个url集合,所以也需要和总url一样的格式。
在这里插入图片描述
我们再在总url文件中引用子url文件:
在这里插入图片描述
通过这样子的方式,我们可以把路由设置写的清晰明了。方便我们处理。

最后我们再回顾一下我们现在的代码结构:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

后记

可能到现在,大家脑子里对于django已经有个初步的了解了,我们可以再从下图中揣摩一下具体的流程,加深一下印象。

在这里插入图片描述
解析:

用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数:

a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。
b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。

视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

猜你喜欢

转载自blog.csdn.net/Thorne_lu/article/details/107711748