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规范详情。。

  • 相关阅读:
    RHEL双网卡绑定
    图解机房收费系统报表制作的全过程
    linux内存管理机制
    hdu4432 Sum of divisors(数论)
    树和而叉查找树的实现
    49. 面向对象的LotusScript(十五)之Log4Dom下
    HDU 4009 不定根最小树形图
    模拟+二分 poj-1019-Number Sequence
    SQL Server 事务日志传输
    百度开放云java+tomcat部署web项目-小皇帝詹姆斯
  • 原文地址:https://www.cnblogs.com/gaoya666/p/9100626.html
Copyright © 2011-2022 走看看