zoukankan      html  css  js  c++  java
  • django是怎么处理请求的

    本文摘自 http://djangobook.py3k.cn/2.0/chapter03/

    我们在Django建立helloworld自定义页面中新建了站点,并能接受URL请求展示我们的页面,那Django是如何处理这些请求的呢?让我们暂停一下去了解更多一些有关Django是怎么工作的知识。

    具体地说,当你通过在浏览器里敲http://127.0.0.1:9200/hello/来访问Hello world页面得时候,Django在后台有些什么动作呢?我们简要说明一下。

    Django创建的站点,所有请求均开始于settings.py文件。当你运行python manage.py runserver,脚本将在manage.py所在目录下查找名为settings.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'

    相对应的文件是mysite/urls.py

    当访问 URL /hello/ 时,Django 根据 ROOT_URLCONF 的设置装载 URLconf 。 然后按顺序逐个匹配URLconf里的URLpatterns,直到找到一个匹配的。 当找到这个匹配的URLpatterns就调用相关联的view函数,并把HttpRequest 对象作为第一个参数。 

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

    总结一下: 

    1. 进来的请求转入/hello/.

    1. Django通过在ROOT_URLCONF配置来决定根URLconf 

    1. Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目(这也是为什么URLconf配置是使用‘^$’正则符号来匹配)。 

    1. 如果找到匹配,将调用相应的视图函数 

    1. 视图函数返回一个HttpResponse 

    1. Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来

     
  • 相关阅读:
    fastlane 自动化打包不同的target,以及手动传版本号参数
    xcode 添加Account报错 This action could not be completed,Try again
    iOS 如何在模拟器中安装APP
    git 基础总结
    cnpm run build 报错 Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 9.x
    iOS 静态库sdk项目依赖到工程项目测试
    Windows下程序的自删除
    80x86指令码查询表(转载)
    C语言实现Win32第一个窗口
    Visual Studio的Unicode和ASCII
  • 原文地址:https://www.cnblogs.com/cotton/p/3833016.html
Copyright © 2011-2022 走看看