Flask之WSGI:Werkzeug
2024-10-15 21:46:40
WSGI
一个Web应用的本质就是:
浏览器发送一个HTTP请求;
服务器收到请求,生成一个HTML文档;
服务器把HTML文档作为HTTP响应的Body发送给浏览器;
浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。
如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,首先得花个把月去读HTTP规范。
正确的做法是底层代码由专门的服务器软件实现,我们专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心编写Web业务。
这个接口就是WSGI:Web Server Gateway Interface。
接口对应的实现函数应包括两个参数:
environ:一个包含所有HTTP请求信息的
dict
对象;start_response:一个发送HTTP响应的函数。
例子:
其中 start_response发送两个参数:1、字符串:http状态码;2、列表:由HTTP Header组成的元组列表
最后返回为body正文内容。
用python内置的wsgi服务器运行:
Werkzeug
参考 http://werkzeug.pocoo.org/docs/0.14/tutorial/#step-3-the-environment
其url和视图被flask框架进行封装,将在flask框架中进行学习。
最新文章
- EntityFramework Reverse POCO Code First 生成器
- spring 另开线程时的注入问题
- Nexus3.0.0+Maven的使用(二)
- Ubuntu之root权限的获取
- C#生成验证码
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
- tomcat异常: Cannot get a connection, pool exhausted
- 解决JVM最大内存设置问题
- 在UWSGI和NGINX配合的情况下,配置个别目录上传及超时
- 11235 - Frequent values
- Java实现字符串反转
- C++ Primer 读书笔记 第2章 变量和基本类型
- 对discuz的代码分析学习(三)mysql驱动
- Ownership qualifiers of Objective-C: In Details
- hdu2203 KMP水的问题
- jfianl返回自定义的404页面
- 进程——wait与waitpid、僵尸进程与孤儿进程
- 【Spark2.0源码学习】-2.一切从脚本说起
- Hadoop集群的hbase介绍、搭建、环境、安装
- Could not find result map XXX 解决办法
热门文章
- windows防火墙安全设置指定ip访问指定端口
- win10无法删除文件夹(其中的文件或者文件夹已在另一个程序中打开)怎么办?
- JavaScript 中的匿名函数((function() {})();)与变量的作用域
- account
- 通过css3,实现加载转动贝塞尔曲线动画
- Jedis关于Set的API Demo
- kubernetes statefulset kafka 部署后, 外部访问超时问题解决
- jQuery 自定义函数写法分享
- linux安装jenkins和编译发布gitlib项目
- qt 程序中执行额外程序和脚本