• Django是如何处理URL请求的

    理解Django的机制
    服务器君一共花费 27.402 ms 进行了 5 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    让我们暂停一下去了解更多一些有关Django是怎么工作的知识。比如,当你通过在浏览器里敲 http://127.0.0.1:8000/hello/ 来访问Hello world 消息得时候,Django 在后台有些什么动作呢?

    这些知识很对于理解 Django 很有必要。

    所有均开始于 setting 文件。

    当你运行 python manage.py runserver,脚本将在于 manage.py 同一个目录下查找名为 setting.py 的文件。这个文件包含了所有有关这个 Django 项目的配置信息,均大写: TEMPLATE_DIRS , DATABASE_NAME , 等。最重要的设置时 ROOT_URLCONF,它将作为URLconf 告诉 Django 在这个站点中那些 Python 的模块将被用到。

    还记得什么时候 django-admin.py startproject 创建文件 settings.py 和 urls.py 吗?自动创建的 settings.py 包含一个ROOT_URLCONF配置用来指向自动产生的 urls.py。打开文件 settings.py 你将看到如下:

    ROOT_URLCONF = 'mysite.urls'
    

    当访问 URL /hello/ 时,Django 根据 ROOT_URLCONF 的设置装载 URLconf 。 然后按顺序逐个匹配 URLconf 里的 URLpatterns,直到找到一个匹配的。 当找到这个匹配 的 URLpatterns 就调用相关联的 view 函数,并把 HttpRequest 对象作为第一个参数。 (稍后再给出 HttpRequest 的更多信息,我们将在后面看到 HttpRequest 的标准)

    正如我们在第一个视图例子里面看到的,一个视图功能必须返回一个 HttpResponse。 一旦做完,Django 将完成剩余的转换 Python 的对象到一个合适的带有 HTTP 头和 body 的 Web Response(例如,网页内容)。

    总结一下:

    1. 进来的请求转入/hello/。
    2. Django 通过在 ROOT_URLCONF 配置来决定根 URLconf。
    3. Django 在 URLconf 中的所有 URL 模式中,查找第一个匹配 /hello/ 的条目。
    4. 如果找到匹配,将调用相应的视图函数。
    5. 视图函数返回一个 HttpResponse。
    6. Django 转换 HttpResponse 为一个适合的 HTTP response, 以 Web page 显示出来。
    • 你现在知道了怎么做一个 Django-powered 页面了吧,真的很简单,只需要写视图函数并用 URLconfs 把它们和 URLs 对应起来。 你可能会认为用一系列正则表达式将 URLs 映射到函数也许会比较慢,但事实却会让你惊讶。
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [Python程序设计] Django后台管理系统 2 个条目
  2. [PHP程序设计] PHP数组探索 4 个条目
  3. [软件工程与项目管理] 开始了解Git 5 个条目
  4. [Python程序设计] Python数据类型 11 个条目
  5. [移动开发] Android开发基础知识 4 个条目
  6. [移动开发] Layout_weight属性解析 5 个条目
  7. [移动开发] Android Studio的使用技巧 4 个条目
  8. [Python程序设计] Django架构流程分析 7 个条目
  9. [运维管理] 防火墙原理与应用 5 个条目
  10. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  11. [移动开发] Android属性系统Property 9 个条目
  12. [Python程序设计] Python语言概述 6 个条目
窗口 -- [八点]