• Django是如何处理URL请求的

    理解Django的机制
    服务器君一共花费 13.404 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. [搜索引擎优化] 与百度权重有关的信息 2 个条目
  2. [PHP程序设计] fsockopen,curl与file_get_contents 12 个条目
  3. [Python程序设计] Python Web部署的背景知识 9 个条目
  4. [软件工程与项目管理] 开始使用Git 3 个条目
  5. [智力开发与知识管理] 学习编程为什么没会这么难? 7 个条目
  6. [软件工程与项目管理] 浏览器初步介绍 8 个条目
  7. [C语言程序设计] C语言里的全局变量 2 个条目
  8. [智力开发与知识管理] 整体性学习步骤 9 个条目
  9. [Python程序设计] Django数据库模型 6 个条目
  10. [移动开发] Android开发基础知识 4 个条目
  11. [PHP程序设计] PHP与函数式编程 1 个条目
  12. [软件工程与项目管理] 呈现器的布局与绘制 11 个条目
窗口 -- [资讯]