Python wsgi和web框架
什么是WSGI
- Python Web Server Gateway Interface(pep3333)
- 解决Python Web Server 乱象mod_python,CGI,FastCGI等
- 描述了Web Server(Gunicorn/uwsgi)如何与web框架(Flask/Django)交互,web框架如何处理请求
总:定义一个web框架的规范,有了规范可以让任意的web 框架泡在web server上。
Python Web框架对比
Django vs Flask vs Tornado
- Django:大而全,内置ORM、Admin等插件、第三方插件多
- Flask:微框架,插件机制,比较灵活
- Tornado:异步支持微框架和异步网络库
什么是MVC模式
MVC:Model、View、Controller,出现这几层主要原因还是为了解耦
- Model:负责业务对象和数据库的交互(ORM)
- VIew:负责与用户交互展示
- Controller:接受请求参数调用模型和视图来完成请求
什么是ORM
- 用于实现业务对象与数据表中的字段映射
- 优势:代码更加面向对象、代码量更少、灵活性更高、提升开发效率
- 缺点:拼接对象比较耗时,有一定性能影响(优先使用ORM框架提升开发效率和可维护性)
一个web框架有哪些部分组成
- 中间件:用于请求之前和请求之后做一些处理(比如记录日记)
- 路由、表单验证、权限认证、ORM、视图函数、模板渲染、序列化
- 第三方插件:redis,restful支持等
什么是Gunicorn
- 纯python编写的高性能WSGI Server
- pre-fork预先分配多个worker进程处理请求(master-slave)
- 支持多种worker:Sync/Async(Gevent)/Tornado/AsyncIO