zoukankan      html  css  js  c++  java
  • Django执行流程

    一. django流程介绍

      mvc是众所周知的模式, 即 将应用程序分解成三个部分: model(模型), view(视图), controller(控制器),其中:

      M -- 管理应用程序的状态(通常存储到数据库中), 并约束改变状态的行为(或者叫业务规则)

      C -- 接受外部用户的操作, 根据操作访问模型获取数据, 并调用"视图"显示这些数据,, 控制器是将"模型"和"视图"隔离, 并成为两者之间的联系纽带

      V -- 负责把数据格式化之后呈现给用户

      Django也是一个MVC框架, 只是在Django中, 控制器接受用户输入的部分由框架自行处理, 所以Django更关注的是模型, 模板和视图. 称为MTV模式.

      M --负责业务对象和数据库的关系映射(ORM)

         T -- 负责如何把页面展示给用户(html)

       v -- 负责业务逻辑, 并在适当时候调用Model和Template

      除了上述三层以外, 还需要一个URL分发器, 他的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template

    执行步骤::

      1. 用户通过浏览器请求一个页面

      2. 请求到达Request Middlewares, 中间件对request做一些预处理或者直接response请求

      3. URLConf通过urls.py文件和请求的URL找到对应的View

      4. View Middleware被访问, 它同样可以对request做一些预处理或者直接返回response

      5. 调用View中的函数

      6. View中的方法可以选择的通过Models访问底层的数据

      7. 所有的Model-to-DB的交互都是通过manager完成的

      8. 如果需要, Views可以使用一个特殊的Context

      9, Context被传给Template用来生成页面

      a. Template使用Filters和Tags去渲染输出

      b. 输出被返回到View

      c. HTTPResponse被发送到Response Middlewares

      d. 任何Response Middleware偶可以丰富response或者返回一个完全不同的response

      e. Response返回到浏览器, 呈现给用户

  • 相关阅读:
    es集群的调优2
    es集群中kibana和es集群的高可用设置
    es集群中参数参数discovery.zen.minimum_master_nodes深度解析
    哔哩哔哩适合后端编程人员的elasticsearch快速实战教程学习总结
    Vue2-基本语句
    SpringBoot-ElasticSearch初使用
    Java-SSO单点登录的3种方式【待完善】
    Java-学习日记(函数式编程与@ControllerAdvice)
    SpringBoot-内置Tomcat启动原理
    Java-学习日记(Atomic,Volatile)
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10446496.html
Copyright © 2011-2022 走看看