• Django是如何处理URL请求的

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

    让我们暂停一下去了解更多一些有关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. [PHP程序设计] PHP数组探索 4 个条目
  2. [移动开发] 使用support-v7 ActionBar前的那些坑 3 个条目
  3. [智力开发与知识管理] 整体性学习步骤 9 个条目
  4. [智力开发与知识管理] 超越整体性学习 5 个条目
  5. [移动开发] ListView 使用相关问题集 1 个条目
  6. [Python程序设计] Tornado背景知识介绍 4 个条目
  7. [数据库技术] SQL基础语法 1 个条目
  8. [移动开发] 从代码角度去认识 Thread 9 个条目
  9. [Python程序设计] Python数据类型 11 个条目
  10. [移动开发] Android加载器Loaders 5 个条目
  11. [Python程序设计] Django架构流程分析 7 个条目
  12. [PHP程序设计] 对输入文件类型的检测 1 个条目
窗口 -- [博客]