目录
前端页面的动态内容是靠view function (视图函数) 来产生,联系前端和视图函数的URL定义在 URLconf 中。
第一个视图
过程
1、首先,我们从 django.http 模块导入(import) HttpResponse 类;
2、接下来,在之前使用django admin.py startproject制作的mysite文件夹中,创建一个叫做views.py的空文件。这个Python模块将包含这一章的视图.我们定义一个叫做hello 的视图函数;
3、每个视图函数至少要有一个参数,通常被叫作request。 这是一个触发这个视图、包含当 前Web请求信息的对象,是类django.http.HttpRequest的一个实例。在这个示例中,我们 虽然不用request做任何事情,但它必须是这个视图的第一个参数;
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
注意
一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest ,它返回一个HttpResponse实例。
这个对象包含了文 本“Hello world”。
第一个URLconf
过程
1、执行 django-admin startproject 时,该脚本会自动为 你 建 立 一 份 URLconf ( 即 urls.py 文件)。 默认的urls.py
2、前两行导入 django.contrib 下 的 admin模块和django.urls的path模块,它们是Django URLconf的基本构造。这包含了一个patterns函数
3、调用 path() 函数增加URL模式与view视图函数的映射
from django.contrib import admin
from django.urls import path
from mysite.views import hello
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', hello)
]
注意
元组中第一个元素是模式匹配字符串;第二个元素是那个模式将使用的视图函数。
简单来说,我们只是告诉 Django,所有指向前端 URL /hello/ 的请求都应由 hello 这个视图函数来处理。
setting.py文件配置
这个文件包含了所有 有关这个 Django 项 目 的 配 置 信 息 , 均大写: TEMPLATE_DIRS , DATABASE_NAME 等。
最重要的设置是 ROOT_URLCONF, 它将作为 URLconf告诉Django在这个站点中那些Python的模块将被用到。
启动Django开发服务器进行测试
1、测试修改好的 URLconf, 运行命令行 python manage.py runserver(如果你让它一直运行也可以,开发服务器会自动监测代码改动并自动 重新载入,所以不需要手工重启)
2、打开浏览器直接输入“ http://127.0.0.1:8000/hello/”,你将看到由你的 Django视图输出的Hello world。
Django处理请求的过程
1、进来的请求转入/hello/;
2、Django通过在ROOT_URLCONF配置来决定根URLconf;
3、Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目;
4、如果找到匹配,将调用相应的视图函数;
5、视图函数返回一个HttpResponse;
6、Django转换HttpResponse为一个适合的HTTP response, 以Web page显 示出来。