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

  • 相关阅读:
    SQL_server2000以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
    从SQL Server中导入/导出 Excel 的基本方法
    开启了telnet服务
    Redis之在Linux上安装和简单的使用
    详解Hibernate中的二级缓存
    Reader entry: ���� 乱码
    内部类
    Orical
    el表达式原样输出问题
    intellij idea 修改背景保护色&&修改字体&&快捷键大全
  • 原文地址:https://www.cnblogs.com/gaoya666/p/9100626.html
Copyright © 2020-2023  润新知