Django 中的视图的概念是「一类具备相同功能和模板的网页的集合」。好比,在一个博客应用中,你可能会建立以下几个视图:python
这些需求都靠视图(View)来完成。git
首先写一个最简单的视图函数,在浏览器中打印出Hello World!
字符串。github
打开article/views.py
,写出视图函数:sql
article/views.py # 导入 HttpResponse 模块 from django.http import HttpResponse # 视图函数 def article_list(request): return HttpResponse("Hello World!")
在 Django 中,网页都是从视图派生而来。每个视图表现为一个简单的 Python 函数,它必需要作的只有两件事:返回一个包含被请求页面内容的 HttpResponse
对象,或者抛出一个异常,好比 Http404
。至于你还想干些什么,随便你。数据库
视图函数中的request
与网页发来的请求有关,里面包含get或post的内容、用户浏览器、系统等信息。Django调用article_list
函数时会返回一个含字符串的 HttpResponse
对象。django
有了视图函数,还须要配置URLconfs,将用户请求的URL连接关联起来。换句话说,URLconfs的做用是将URL映射到视图中。浏览器
在前面的文章中已经将项目/article
的URL分发给了article
应用,所以这里只须要修改以前添加的article/urls.py
就能够。添加如下代码:服务器
article/urls.py # 引入views.py from . import views ... urlpatterns = [ # path函数将url映射到视图 path('article-list/', views.article_list, name='article_list'), ]
Django 将会根据用户请求的 URL 来选择使用哪一个视图。本例中当用户请求article/article-list
连接时,会调用views.py
中的article_list
函数,并返回渲染后的对象。参数name
用于反查url地址,至关于给url起了个名字,之后会用到。ide
测试一下刚才敲的代码是否工做正常。函数
在虚拟环境中,进入项目目录,也就是my_blog
文件夹,输入python manage.py runserver
,运行调试服务器:
(env) E:\django_project\my_blog>python manage.py runserver Performing system checks... System check identified no issues (0 silenced). August 30, 2018 - 19:41:00 Django version 2.1, using settings 'my_blog.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
成功运行后,打开浏览器,输入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
应用分发的地址。
运气好的话,浏览器中会打印出Hello World!
字符串:
不到10行代码就完成了基本功能,是否是很神奇。
固然,只是小试牛刀。
在前面章节编写Model模型中虽然定义了数据库表,可是这个表是空的,不方便展现View调取数据的效果。因此在写View以前,须要往数据表里记录一些数据。接下来就作这个工做。
网站后台,有时也称为网站管理后台,是指用于管理网站的一系列操做,如:数据的增长、更新、删除等。在项目开发的初期,由于没有真实的用户数据和完整的测试环境,会频繁地使用后台修改测试数据。
幸运的是Django内置了一个很好的后台管理工具,只须要些少许代码,就能够实现强大的功能。
管理员帐号(Superuser)是能够进入网站后台,对数据进行维护的帐号,具备很高的权限。这里咱们须要建立一个管理员帐号,以便添加后续的测试数据。
虚拟环境中输入python manage.py createsuperuser
指令,建立管理员帐号:
(env) E:\django_project\my_blog>python manage.py createsuperuser Username: dusai Email address: dusaiphoto@foxmail.com Password: Password (again): Superuser created successfully.
指令会提示你输入帐号名字、邮箱和密码,根据喜爱填入便可建立成功。
接下来咱们须要“告诉”Django,后台中须要添加ArticlePost
这个数据表供管理。
打开article/admin.py
,写入如下代码:
article/admin.py from django.contrib import admin # 别忘了导入ArticlerPost from .models import ArticlePost # 注册ArticlePost到admin中 admin.site.register(ArticlePost)
这样就简单的注册好了。
细心的同窗可能已经发现,Django项目生成的时候就自动配置好了后台的settings和url,所以不须要咱们再操心了。
启动server,在浏览器中输入http://127.0.0.1:8000/admin/
,一切正常的话就看到下面的登陆界面了:
输入刚才建立的管理员帐号,登陆进去:
红框内就是刚才添加的ArticlePost
数据表,点击进入后,再点击右上角的ADD ARTICLE POST
按钮,到达以下页面:
仔细看一下表单中的每一项,发现与ArticlePost
中的字段彻底符合;由于updated
字段指定了自动添加,这里就没显示了。
将表单填好后,点击保存:
能够看到ARTICLE POST中多了刚才录入的一条数据。按照一样的方法,再写入几条数据:
至此准备工做就已经大功告成。
2018-10-29 新增内容
经过上面的操做,咱们的数据库中已经有1条用户数据、3条文章数据了。有的时候我须要检查数据库中的数据是否正确,可是项目中的数据库文件db.sqlite3
又没法直接打开,怎么办呢?
这时候就须要用到专门处理SQLite数据文件的软件了:SQLiteStudio
下载并安装,用它打开db.sqlite3
,软件导航栏中就出现了数据库中保存的各种数据列表。好比说auth_user就是用户数据表了:
你能够用它检查项目代码中数据库的操做是否正常,这在开发阶段是很是实用的。
本章初步感觉了View的工做模式,建立了Superuser在后台录入了几条测试数据。
下一章将编写更有意义的View,准备好后老司机就开车了。
转载请告知做者并注明出处。