当前位置:
首页 > 博客 > 【django2.0学习笔记】03.使用模板,调取后台数据

【django2.0学习笔记】03.使用模板,调取后台数据

上节课我们学习了

【django2.0学习笔记】02.登录后台,添加数据库字段

这节课我们来实现,如何把后台数据显示到浏览器上。

开始

1.在firstapp(第一节创建的文件目录,移步查看)中创建templates文件夹,这个文件夹主要存放html文件,并在此文件夹下创建一个简单页面,命名second_web.html,代码如下

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>第一个网页</title>
</head>

<body>
</body>
</html>

2.从数据库取数据

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

这段代码的含义是,从People数据库中取出全部数据,把数据构建成字典context,最后用Django自带的render函数处理数据。这里的原理现在先不用深究,总之render函数有三个参数,第一请求,第二模板名称,第三字典数据。

3.去模板文件调取数据

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

解释一下这里的代码,使用循环从字典中读取数据,呈现到网页。

Django的循环方法是

{% for name in names %}
{% endfor %}

调取数据

{{ name }}

去浏览器看看效果

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

数据全部出现了

还记得上节我们创建的字段is_deleted吗,可以在后台标记隐藏文章,这里怎么又全部展现了?

4.添加条件,控制数据。

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

views层,这里提取的是全部数据,改为限制条件即可

person = People.objects.filter(is_deleted=False)

5.内容都显示在一页,如果我想加个列表,点击分别进入每个人呢的详情,大致思路如下

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

在模板template文件夹下新建second_list.html文件,加入代码

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>第一个网页</title>
</head>

<body>
    {% for i in person %}

        <a href="{% url 'second_web' i.pk %}">{{ i.name }}</a>

    {% endfor %}
</body>
</html>

解释,这里加入了一个新方法

{% url 'second_web' i.pk %}

这是创建了一个新连接,这是Django推荐的方法,second_web是我们定义的名称(如何创建的,看下文),i.pki.id意思一样,但.pk是主键的意思,更保险。

去views层创建视图

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

这里变化比较多,创建second_list函数,提取内容,给second_web添加people_id传参(用id做链接)

去urls层设置链接

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

传入id,并自定义名称。

浏览器看看效果

进入列表页,能看到人名

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

点击乔布斯,进入了他的介绍,用id作为链接的。

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

总结,这节讲述起来,感觉有点乱,我提供一个方法,每一步都要练习,不懂的反复练习,搞清楚template,views,urls层都是做什么的。

注意:说了这么多层,乱了,我们再来复习一下Django文件目录。

【django2.0学习笔记】03.使用模板,调取后台数据 - 优美设

我在学到这节内容后,突然有个感悟,Django做网站,其实就是在操作数据库的内容。试想,假如你学好了python怎样操作数据库,再用Django做个网页,是不是小菜一碟。有些人说,不对呀,你做的网页也太简陋了吧。这也不难,先把数据搞清楚,剩下的就是前端的事了,作为初学者,由于前端后端穿插的数据,很容易混乱。再次推荐,网站就是后端,后端,后端!不要有杂念。

(。・`ω´・)美工里的程序猿,程序猿里的印刷工。