我们在Web浏览器中访问了http://127.0.0.1:8000/hello/,看到
“Hello World!”,这个过程是怎么运行的呢?
运行 python manage.py runserver 命令时
manage.py脚本在内层mysite目录中寻找名为setting.py文件
这个文件保存着当前Django项目的配置。其中最重要的设置是
ROOT_URLCONF,它告诉 Django,网站的 URL 配置在哪个 Python 模块中。
settings.py 文件中包含 ROOT_URLCONF 设置,指向自动生成的urls.py 文件。打开 settings.py 文件
会看到下述设置:
ROOT_URLCONF = 'mysite.urls'
这个模块对应的文件是 mysite/urls.py
Django加载ROOT_URLCONF设置指定的URL配置,然后按顺序检查URL配置中的各个URL模式,依次与请求的URL比较,直到找到匹配的模式为止。
找到匹配的模式后,调用对应的视图函数,并把一个HttpRequest对象作为第一个参数传给视图,剩余的工作交给Django处理。
总结:
1. 请求 /hello/。
2. Django 查看 ROOT_URLCONF 设置,找到根 URL 配置。
3. Django 比较 URL 配置中的各个 URL 模式,找到与 /hello/ 匹配的那个。
4. 如果找到匹配的模式,调用对应的视图函数。
5. 视图函数返回一个 HttpResponse 对象。
6. Django 把 HttpResponse 对象转换成正确的 HTTP 响应,得到网页。