一、Django是怎么处理请求的?

  当你通过在浏览器里敲http://127.0.0.1:8000/hello/来访问Hello world消息得时候,Django在后台有些什么动作呢?

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

自动创建的settings.py包含一个ROOT_URLCONF配置用来指向自动产生的urls.py. 打开文件settings.py你将看到如下:

 ROOT_URLCONF = 'django_day18.urls'

当创建django的项目完成时,会有三个文件,settings.py   urls.py  wsgi.py,其中urls.py就是主要用来处理请求的文件。

当访问 url /hello/ 时,Django 根据 ROOT_URLCONF 的设置装载 URLconf 。

其实就是当请求来到时,Django会根据settings.py里ROOT_URLCONF = 'django_day18.urls',找到urls.py.然后轮询此文件里所有

的urlpatterns。直到匹配到第一个与请求的url /hello/相同的url条目为止。找到的这个 URLpatterns就调用相关联的view函数

来看一下urls.py文件下的内容:

 from django.conf.urls import include, url
from django.contrib import admin
from app01 import views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/', views.login), url(r'^home/', views.home),
url(r'^index/', views.index),
]

可以看到,文件里面导入了views中的函数方法,以此建立了与urls的联系。

这是views.py文件内容:

 from django.shortcuts import render,HttpResponse,redirect

 # Create your views here.

 def index(request):
print "index"
return HttpResponse('ok')

正则方式的URL映射:

总结一下:

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

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

  3. Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。

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

  5. 视图函数返回一个HttpResponse

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

Django的请求流程(url)的更多相关文章

  1. Django——如何处理请求(URL配置和视图)

    URLconfig—— 为了绑定视图函数和URL,我们使用URLconf. URLconf 就像是 Django 所支撑网站的目录. 它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间 ...

  2. django源码分析 请求流程

    一.从浏览器发出一个请求,到返回响应内容,这个过程是怎么样的? 1. 浏览器解析输入的url 2. 查找url对应的ip地址 3. 通过ip地址访问我们的服务器 1.  请求进入wsgi服务器(我在这 ...

  3. Python--day62--Django安装,配置,web请求流程,views.py总结

    1,安装Django 2,创建Django项目: 3,配置Django项目 1.settinngs.py文件 1.templates文件夹的位置 2.静态文件 1,STATIC_URL   ----- ...

  4. 【转】Django HTTP请求的处理流程

    Django 和其他 Web 框架的 HTTP 处理的流程大致相同,Django 处理一个 Request 的过程是首先通过中间件,然后再通过默认的 URL 方式进行的.我们可以在 Middlewar ...

  5. Django从请求到返回流程

    图1:流程图 1. 用户通过浏览器请求一个页面2.请求到达Request Middlewares,中间件对request做一些预处理或者直接response请求3.URLConf通过urls.py文件 ...

  6. Django中请求的生命周期

    1. 概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串. 在Django中,当我们访问一个的url时,会通过路由匹配进入相应的html网页中. Django的请求生命周期是指当用户 ...

  7. 【django基础补充之URL,视图,模版】

    一.url路由配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代 ...

  8. Django的请求生命周期

    Django的请求生命周期 请求生命周期 请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情. 1.客户端发送Http请求 2 .服务器接收,根据请求 ...

  9. Django 框架 django的请求生命周期

    概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串,同时http请求是无状态的,可以通过session和cookie来辅助. 浏览器通过ip和端口及路由方式访问服务端. 在Djang ...

随机推荐

  1. HTML5教程:课时一HTML简介

    一.HTML5新特性 1.HTML5多媒体:标签:视频<video>  :音频<audio> 2.HTML5应用:  本地数据存储:访问本地文件: 本地SQL数据:缓存引用: ...

  2. linux启动黑屏或无法进入会话管理器

    原因是因为更新软件时删除了/etc中的xserver配置文件,进入livecd将相关文件拷贝即可

  3. C语言数据输入与输出

    1 概论 C语言提供了跨平台的数据输入输出函数scanf()和printf()函数,它们可以按照指定的格式来解析常见的数据类型,例如整数,浮点数,字符和字符串等等.数据输入的来源可以是文件,控制台以及 ...

  4. php 连接mysql数据库并显示数据 实例 转载

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  5. 修改Tomcat命令窗口的名字

    在运行多个tomcat窗口的时候,可以通过修改tomcat命令窗口的名字来区分不同的tomcat,修改如下: 找到tomcat下面的这个文件:tomcat_home\bin\catalina.bat, ...

  6. 实现Action(含Action访问ServletAPI)

    Action里是否包含实例变量不重要,重要的是包含setter和getter方法. Action可用于封装请求参数和处理结果.jsp中使用struts2输出:<s:property value= ...

  7. ProfessionalKnowledgeArchitecture

  8. iOS: 学习笔记, 用代码驱动自动布局实例(swift)

    iOS自动布局是设置iOS界面的利器.本实例展示了如何使用自动布局语言设置水平布局, 垂直布局1. 创建空白iOS项目(swift)2. 添加一个控制器类, 修改YYAppDelegate.swift ...

  9. 解决VS2015无法调试dotnet core项目

    dotnet core 1.0正式版和VS2015 update3安装后一直无法在VS中正常调试. 错误提示:The debugger's worker process (msvsmon.exe) u ...

  10. JDK源码阅读(三) Collection<T>接口,Iterable<T>接口

    package java.util; public interface Collection<E> extends Iterable<E> { //返回该集合中元素的数量 in ...