
前文
通过上一章我们学会了如何创建 Django 项目,并且运行了 Django 项目,但是并不能满足你们的期望吧?OK 我们可以编写一些东西向页面展示一下,写什么呢?我们学编程输出最多的就是 Hello World 了,经典啊。OK 我们编写一下代码,在页面输出 Hello Django 具体怎么做呢?
创建你的第一个app
app 是什么?就好比你的手机的一个软件是一个app,一部手机可以有多个app,同样的在 Django 也是一样,一个 Django 可以有多个 app,怎么创建呢?
首先我们点击 terminal 终端

我们可以借助一下命令,如下:
python manage.py startapp 你的app名
例如我们创建一个名为 webapp 的 app,输入完之后点击回车

OK,app 创建完成,我们还可以继续创建 app,但是这里并不需要创建那么多

说明:
•migrations :数据库修改表结构的记录•admin :django 为我们提供的后台管理•apps :配置当前app的,暂时用不到•models :ORM,写指定的类,通过命令可以创建数据库结构•tests :单元测试•views :业务代码
编写你的第一个基于 Django 的页面
OK,开始撸代码,我们打开 views.py 文件

可以发现,这个文件空空如也,我们给它添加点东西
from django.http import HttpResponsedef hello(request):return HttpResponse("Hello Django")

上面这段代码什么意思呢?来分析一下
•from django.http import HttpResponse:导入一个 HttpResponse 类,您编写的每个视图都负责实例化,填充和返回 HttpResponse•def hello(request) :定义一个名为 hello 的视图函数,每个视图函数至少要有一个参数,通常被叫作 request。这是一个触发这个视图、包含当前 web 请求信息的对象,是 django.http.HttpRequest 的一个实例,虽然这里的 request不用做任何事情,但是它仍必须是这个视图的第一个参数。关于什么是 django.http.HttpRequest ?后续会讲到•return HttpResponse("Hello Django") :这句代码仅仅返回一个 HttpResponse 对象,这个对象包含了文本 “Hello Django”
注意:视图函数的名称是可以随意命名的
OK,我们启动一下项目,我们的 Django 项目除了可以点击运行按钮之外还可以使用命令的方式启动,启动命令如下:
python manage.py runserver
OK,启动访问一下

怎么回事???怎么还是欢迎界面?原因是因为虽然我们编写了代码但是我们对 mysite 项目中 hello 的视图一无所知,不知道是通过什么访问的。所以我们需要通过一个详细描述的 URL 来显式地告诉它并且激活这个视图。为了绑定视图函数和 URL ,我们需要使用 URLconf
什么是 URLconf?
URLconf 就好比如是 Django 所支撑的网站目录,它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。而我们要做的就是以这种方式告诉 Django,对于这个 URL 调用这段代码,还是对于哪个 URL 调用哪段代码。打个比方,比如当我们在 http://127.0.0.1:8000/后面加上 hello (即http://127.0.0.1:8000/hello)的时候调用的是 hello 这个函数 这个视图存在于 Python模块文件 views.py 中,而 URLconf 存在于 urls文件中,我们打开看一下

# 上图中的代码from django.contrib import adminfrom django.urls import pathurlpatterns = [path('admin/', admin.site.urls),]
可以看到这个 urls 文件中除了一大段注释以外只有几行代码,那么这几行代码到底是什么东西呢?我们来分析一下
•from django.contrib import admin :导入admin用户管理页面(可以先忽略)•from django.urls import path :返回要包含在中的元素urlpatterns
修改 urls.py 中的代码
修改后的代码(其实就是新增了两行代码)为下图所示:

具体代码
from django.contrib import adminfrom django.urls import pathfrom webapp.views import hellourlpatterns = [path('admin/', admin.site.urls),path('hello/',hello)]
说明:
•当我们导入 from webapp.views import hello 的时候,webapp 目录下的views.py 文件会转译为 webapp.views ,然后我们就可以导入 hello 函数了•path('hello/',hello) :这句代码告诉 Django 所有指向 /hello 的请求都应该由 hello 这个函数来处理
我们再次访问一下 http://127.0.0.1:8000/hello/ ,OK,成功显示了我们编写的 Hello Django





