zoukankan      html  css  js  c++  java
  • Django之WSGI 和MVC/MTV

    一、什么是WSGI?

    Nginx/Apacha :Web Server                                              Web服务器

    WSGI              :Web Server Gateway Interface               PythonWeb服务器网关接口(Python,缩写为WSGI)

    PS:

    It`s awful that my buddy couldn't distinguish WSGI from Web Server who has been a web developer for 3 years.

     

    WEB框架的本质是一个socket服务端接收用户请求,加工数据返回给客户端(Django),但是Django没有自带socket需要使用 别人的 socket配合Django才能正常运行,socket有很多如下,  但是它们必须遵循一个规范 WSGI(web服务网关接口)这个所有socket都遵守的规范就是WSGI。

    Django默认使用: Django框架中不包含socket,它默认使用第三方的wgiref socket(并发性能低 测试使用),也可以结合其他socket;

     生产环境:uwsgi+Django

    wsgiref +Django工作流程

    1.socket 接受客户端请求 做http请求解析(分割请求头请求体)

    2.wsgiref 把解析之后请求相关信息转发 给 Django

    3.Django框架开始 中间件、路由系统、视图函数、ORM操作、模板渲染最终return字符串给socket

    4.socket send (Django产出的字符串),返回客户端

    Wsgi+Django
                from wsgiref.simple_server import make_server
                 
                 
                def RunServer(environ, start_response):
    
                    Django框架开始
                    中间件
                    路由系统
                    视图函数
                    。。。。。
                    
                    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, RunServer)
                    httpd.serve_forever()
    View Code

    二、MVC/MTV是什么?

    是不有人经常在你面前 装B的提起 MVC 和MTV?

    说白了就是做功能模块的划分,把不同的代码放到不同的文件。

    MVC

    models(数据库,模型)

    views(html模板)

    controllers(业务逻辑处理) --> MVC

    MTV

    models(数据库,模型)

    templates(html模板)

    views(业务逻辑处理) --> MTV (Django属于 MTV)

  • 相关阅读:
    创建一个windows服务的小程序及注意事项
    Asp中上传文件
    C#创建Excel表格(样式设置)
    在Windows服务中使用EventLog组件纪录日志
    MVC中使用 事物
    WCF(学习笔记)【参见WCF教程】
    用vs命令提示符来使用 Installutil.exe来安装和卸载Windows服务
    web service使用注意事项
    iphone开发 有关 Navigation Bar 和 UITableView 的用法(Navigation Bar 的edit 按钮 自定义实现编辑状态)
    在Mvc中 使用 Ajax 提交和接收 数据
  • 原文地址:https://www.cnblogs.com/sss4/p/7111349.html
Copyright © 2011-2022 走看看