zoukankan      html  css  js  c++  java
  • Django框架请求生命周期

    先看一张图吧!

     1、请求生命周期

    • - wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架(Flask、Django)

    • - 中间件,帮助我们对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session

    • - 路由匹配

    • - 视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染

    • - 中间件,对响应的数据进行处理。

    • - wsgi,将响应的内容发送给浏览器。

    2、什么wsgi

    wsgi:web服务网关接口

     实现该协议的模块:
     - wsgiref(测试版本,性能特别差)
     - werkzurg
     - uwsig

    wsgiref示例:

    from wsgiref.simple_server import make_server
    
    def run_server(environ, start_response):
    	start_response('200 OK', [('Content-Type', 'text/html')])
    	return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ]  #字节
     
     
    if __name__ == '__main__':
    	httpd = make_server('127.0.0.1', 8000, run_server)
    	httpd.serve_forever()
    

    werkzeug示例:  

    from werkzeug.wrappers import Response
    from werkzeug.serving import run_simple
    
    def run_server(environ, start_response):
    	response = Response('hello')
    	return response(environ, start_response)     #对象
    
    if __name__ == '__main__':
    	run_simple('127.0.0.1', 8000, run_server)

    3、视图

    •  FBV

    url - 函数

    •  CBV

     url - view

    FBV(function base view)与CBV(class base view)本质是一样的,只是fbv基于函数,cbv基于类。只不过fbv较cbv往后多执行了几步。

    4、rest-framework

    rest-framework从dispatch方法开始介入,执行完视图,如果有rest-framework组件,就执行rest-framework。

    5、restfui规范

    查看restful规范详情。。

  • 相关阅读:
    生成指定规模大小的redis cluster对关系
    根据ip列表模拟输出redis cluster的主从对应关系
    获取redis实例绑定cpu的情况
    通过shell模拟redis-trib.rb info的输出
    又一种获取redis cluster slots分布的小脚本
    第3种方法获取redis cluster主从关系
    Lamada
    Linq笔记
    推荐博文
    SQL server 自带存储过程 sp_rename
  • 原文地址:https://www.cnblogs.com/gaoya666/p/9100626.html
Copyright © 2011-2022 走看看