淘宝内部领优惠券的网站怎么建设,2017网站开发主流工具,网页设计心得体会结尾,代理厦门网站设计公司Django请求的生命周期是指: 
当用户在浏览器上输入URL到用户看到网页的这个时间段内#xff0c;Django后台所发生的事情。 
直白的来说就是当请求来的时候和请求走的阶段中#xff0c;Django的执行轨迹。 
一个完整的Django生命周期: 
用户从客户端发出一条请求以后#xff…Django请求的生命周期是指: 
当用户在浏览器上输入URL到用户看到网页的这个时间段内Django后台所发生的事情。 
直白的来说就是当请求来的时候和请求走的阶段中Django的执行轨迹。 
一个完整的Django生命周期: 
用户从客户端发出一条请求以后首先会基于http协议去解析数据并封装然后来到Nginx处理(nginx监听公网ip的某个端口接到请求后如果是静态资源nginx直接获取该资源并返回给用户如果是动态资源nginx就将请求转发到uWSGI,使用协议一般是uwsgi)uWSGI接收到请求以后通过将http协议转化为WSGI协议和Django之间进行通信此时该条请求就真正的来到了后端之上首先它会经过Django的第一道工序:中间件,(而所谓中间件简单来说就是请求来和请求走的时候Django增加的一道工序请求来和请求走的时候都要先经过中间件的处理因此也可以将中间件理解为Django提供的额外功能组件),在经过中间件以后来到Django的第二道工序:路由层(urls.py)去筛选匹配符合符合请求命令后缀的地址然后根据匹配到的地址去Django的第三道工序视图层(views.py)找到对应的视图函数/视图类里的属性之后去到第四道工序模型层(models.py)通过orm操作去数据库中获取数据拿到数据以后回到视图层(views.py)里对数据进行处理(序列化和反序列化)将处理后的数据返给Django的第五道工序模板层(Templates),模板层接收到数据后对数据进行渲染之后再次经过视图层、路由层、中间件、uWSGI服务器、Nginx代理最后将渲染的数据返还给客户端进行展示。     浏览器向django服务器发起请求  路由系统url.py 通过正则匹配url交由视图系统views.py调用对应的方法处理数据  中间件 全局生效(所有方法均需要先由中间件处理)  视图系统views.py 是否需要根据post get请求, 区分处理方式处理数据返回结果  templates 直接返回页面数据处理后返回页面  层层返回给浏览器  简单的说就是django的生命周期是:前端请求—nginx—uwsgi.—中间件—url路由----view视图—orm----拿到数据返回给view----视图将数据渲染到模版中拿到字符串----中间件—uwsgi----nginx----前端渲染。 Django 请求的生命周期主要分为如下四个阶段 
WSGI 应用的初始化URL 路由匹配Django View 函数的执行返回响应 
接着我们将逐一对这四个阶段进行详细讲解。 
WSGI 应用的初始化 
当 WSGI 服务器启动 Django 应用程序时将调用 Django 的自带 WSGI 应用程序处理器将应用程序加载到内存中并在内存设定一些全局变量如 settingsmiddleware 等。这些全局变量可以由 Django 应用程序和应用程序的中间件共同使用。 
其中settings 是 Django 应用程序中最重要的全局变量。它包含了除了 URL 路由跳转之外的所有应用程序配置信息例如本地数据库 URL模板引擎设置调试开关等。middleware 则是一个提供额外功能的组件可以对视图函数的请求和响应进行扩展。 
以下是 WSGI 应用的初始化的代码段 
def get_wsgi_application():django.setup(set_prefixFalse)return WSGIHandler()get_wsgi_application() 函数用于实例化一个 WSGI 应用程序对象并返回 WSGI 请求处理器对象。Django 在这里进行重要的初始化操作。 
URL 路由匹配 
一旦 WSGI 应用程序在内存中设置好了它将自动提供视图即 URL 映射到相应的处理程序。在 Django 中URLs 通过一个名为 urls.py 的文件进行定义和管理。当一个客户端请求到达 Django 时它将映射到 urlpatterns 变量中的可调用视图函数上。 
以下是一个 URL 映射器的示例 
from django.urls import path
from . import viewsurlpatterns  [path(about/, views.about),path(contact/, views.contact),
]在这里URL “/about/” 和 “/contact/” 路径将使用 views.about 和 views.contact 函数来处理请求。 
在匹配 URL 时Django 会按顺序依次尝试匹配每个 URL 规则并使用第一个匹配的 URL 规则。如果没有规则匹配请求的 URL 路径则 Django 允许你定义一个捕获所有情况的通配符 URL 规则即使用 path() 函数的 ‘path:’ 参数。 
urlpatterns  [path(about/, views.about),path(contact/, views.contact),path(path:slug/, views.page_not_found),
]在这个示例中Django 将试图匹配 “/about/” 和 “/contact/”但无论它们能否成功匹配最终都会跳转到 views.page_not_found 函数上。 
Django View 函数的执行 
如果 Django 能够正确地将请求 URL 映射到一个视图函数上则该视图函数将被执行。视图函数是 Django MVC 模型中的控制器它处理请求并返回响应。 
以下是一个视图函数的示例 
from django.shortcuts import renderdef index(request):return render(request, index.html)在这个示例中index 视图函数将会渲染 index.html 模板并将结果用 HTTP 响应的形式返回给客户端。 
Django 将请求对象作为视图函数的第一个参数传递并在对象中提供了用于访问请求数据和其他属性的方法和属性。视图函数还可以访问请求参数和其他内置对象如 settings 和 middleware。 
返回响应 
当视图函数处理请求并生成响应后Django 将响应发送回客户端通常是浏览器。响应的内容都可以是可选的Django 可以生成基于文本HTMLJSONXML 等的响应或者基于非文本例如使用文件响应的响应。 
Django 提供了一组给用户访问的响应对象并允许定制 HTTP 响应头。默认情况下Django 使用 HttpResponse。HttpResponse 接受以下两类参数 
content必选项 - 由视图函数生成的一个字符串。content_type可选项 - 此响应的内容类型如 ‘text/html’ 或 ‘application/json’。