一、视图概念

数据库虽然已经有了,但是用户通常只需要对这个庞大的数据库中的很小一部分进行查看、修改等操作。为此还需要代码来恰当的取出数据并展示,这一部分的代码就被称为视图。

Django中视图的概念是【一类具有相同功能和模板的网页的集合】。比如,在一个博客应用中,你可能会创建如下几个视图:

  • 博客首页:展示最近的几项内容;
  • 内容详情页:详细展示某项的内容;
  • 评论处理器:用于响应为一项内容添加评论的操作;

这些需求都考视图(View)来完成。


二、编写视图函数

打开article/views.py,写出视图函数

Django搭建个人博客--View视图初探_django


网页都是从视图派生而来。每一个视图表现为一个简单的Python函数,它必须要做的只有两件事:返回一个包含被请求页面内容的​​HttpResponse​​​对象,或者抛出一个异常,比如​​Http404​​。

视图函数中的​​request​​​与网页发来的请求有关,里面包含​​get​​​或​​post​​​的内容、用户浏览器、系统等信息。Django调用​​article_list​​​函数时会返回一个含字符串的​​HttpResponse​​对象

有了视图函数,还需要配置​​URLconfs​​​,将用户请求的URL链接关联起来。换句话中,​​URLconfs​​的作用是将URL映射到视图中。

之前已经将URL分发给了​​article​​​应用,因此这里只需要修改之前添加的​​article/urls.py​​就可以,添加如下代码:

Django搭建个人博客--View视图初探_数据_02


Django 将会根据用户请求的URL来选择使用哪个视图。本例中当用户请求​​article/article-list​​链接时,会调用views.py中的article_list函数,并返回渲染后的对象。参数name用于反查url地址,相当于给url起了个名字。


三、测试

启动服务器

python manage.py runserver

Django搭建个人博客--View视图初探_django_03


成功运行后,打开浏览器,输入url地址​​http://127.0.0.1:8000/article/article-list/​​​,其中​​127.0.0.1:8000​​​是调试服务器的本地地址,​​article​​​是项目路由​​my_blog\urls.py​​​分发的地址,​​article-list​​​是刚才配置的​​article\urls.py​​应用分发的地址。

Django搭建个人博客--View视图初探_数据库_04


四、网站管理后台

编写Model模型时虽然定义了数据库表,但是这个表是空的,不方便展示View调取数据的效果。所以在写View之前,需要往数据表里添加一些数据。

4.1、网站后台概念

网站后台,有时也称为网站管理后台,是指用于管理网站的一系列操作,如:数据的增加、更新、删除等。在项目开发的初期,因为没有真实的用户数据和完整的测试环境,会频繁地使用后台修改测试数据。

Django内置了一个很好的后台管理工具,只需要很少的代码,就可以实现强大的功能。

4.2、创建管理员账号

管理员账号(Superuser)是可以进入网站后台,对数据进行维护的账号,具有很高的权限

python manage.py createsuperuser

Django搭建个人博客--View视图初探_数据库_05


根据提示输入账号名字、邮箱和密码即可。

4.3、将ArticlePost注册到后台

我们需要告诉​​Django​​​,后台中需要添加​​ArticlePost​​这个数据表供管理。

打开article/admin.py,写入如下代码

Django搭建个人博客--View视图初探_数据_06


这样就简单的注册好了。

4.4、登录后台

启动server,在浏览器中输入http://127.0.0.1:8000/admin/

Django搭建个人博客--View视图初探_数据_07


输入刚刚创建的管理员账号,登录进去

Django搭建个人博客--View视图初探_数据库_08


点击Article posts进入​ARTICLE​版块

Django搭建个人博客--View视图初探_数据_09

点击右上角的ADD ARTICLE POST添加数据

Django搭建个人博客--View视图初探_django_10


仔细看一下表单中的每一项,发现与ArticlePost中的字段完全符合;因为updated字段指定了自动添加,这里就没显示了。

添加完点SAVE即可。


五、检视数据库

通过上面的操作,我们的数据库中已经有1条用户数据、3条文章数据了。有的时候需要检查数据库中的数据是否正确,但是项目中的数据库文件db.sqlite3又无法直接打开,可以下载一个SQLite数据可视化的软件即可。

Django搭建个人博客--View视图初探_数据_11