第三章目录
在上一章中,我们介绍了如何安装Django,然后通过命令行创建一个Django项目和Django应用,并对项目结构中的文件进行了初步的解释,可能大家还有很多迷糊的地方。不过没关系,我认为慢慢通过练习可以加深我们对这些结构和文件的理解。
今天,我们就能通过一个小小的练习–动手创建Hello World视图,用到上一章中部分Django项目默认创建的文件,赶紧学起来吧。
在我们进入本章动手练习之前,再熟悉熟悉Django的组成结构。
Django的组成结构
Django 是遵循MVC架构的Web开发框架,关于MVC框架的知识(大家可以自行了解,经常会被面试官提到),其主要由以下几个部分组成。
- 管理工具(Management):一套内置的创建站点、迁移数据、维护静态文件的命令工具。
- 模型(Models):提供数据访问接口和模块,包括数据字段、元数据、数据关系等的定义和操作。
- 视图(Views):Django的视图层封装了HTTP Request和Response的一系列操作和数据流,其主要功能包括URL映射机制、绑定模板等。
- 模板(Template):是一套Django自己的页面渲染模板语言,用若干内置的tags和filters定义页面的生成方式。
- 表单(Form):通过内置的数据类型和控件生成HTML表单。
- 管理站(Admin):通过声明需要管理的Model,快速生成后台数据管理网站。
引用菜鸟教程:MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
- Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
- View(视图) - 视图代表模型包含的数据的可视化。
- Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离
大致对Django的组成结构了解之后,再接下来的笔记中,我们将花费时间和练习逐个学习Django这些模块。
Hello World 网站
在上一章我们讲到Django项目和应用的创建后,现在让我们来写我们的第一个视图(views),也就是创建第一个简单的Hello World 网站,通过这个方法我们能够大致了解Django的路由映射功能。
- 首先在mysite/myapp/views.py中建立一个路由相应函数:
from django.shortcuts import render from django.http import HttpResponse # 新增 # Create your views here. def welcome(request): return HttpResponse("<h1>Hello World! </h1>")
该代码定义了一个函数welcome,简单返回一条被HttpResponse()函数封装的Welcome信息。
- 接下来,要通过URL映射将用户的HTTP访问与该函数绑定起来。
在mysite/myapp/ 目录中新建一个urls.py文件,管理应用myapp中的所有URL映射:
写入代码如下:
from django.conf.urls import url from . import views urlpatterns = [ url(r'', views.welcome, name='first-url') ]
第1行代码引入django.conf.urls中的url()函数,Django中的所有路由映射由该函数生成。
第2行代码引入了mysite/myapp/views.py模块。
第3行代码定义了关键变量urlpatterns,该变量是一个列表,保存所有由url()函数生成的路由映射,即,把所有路由映射到views.py的welcome函数中,并把该映射命名为first-url
- 在项目URL文件mysite/urls.py的urlpatterns中增加一项,声明对应用中myapp中urls.py文件的引用,代码如下:
from django.conf.urls import url from django.contrib import admin from django.conf.urls import include # 新增 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^myapp/', include('myapp.urls')), # 新增 ]
首先通过import语句引入django.conf.urls.include()函数,然后通过在urlpatterns列表中增加一个路径myapp/,将其转接到myapp.urls包,即mysite/myapp/urls.py文件。这样,就能通过include()函数就将两个urlpatterns连接了起来。
4. 这样之后,我们来看看会发生什么:
python manage.py runserver
然后用Chrome(或者其他Web浏览器),打开[http://127.0.0.1:8000/myapp]这个链接,我们可以看到如下效果:
恭喜你!你刚刚完成了你的第一个Django视图–Hello World(毕竟这是每一个初学者必过的一关了吧。)
总结
通过第一章和第二章的学习,我们学习了如何安装Django,如何建立项目和应用,并以此开始了我们得第一个Django项目,创建了我们的初始应用程序。
希望大家能够主动动手开始实践,毕竟学会多写一种Hello World程序也是一种极大的进步啊。接下来,我们将开始逐步学习模型,视图和URLs,一起探索更多关于Django的有趣知识。