python学习笔记(4)_WSGI接口

WSGI:web server gateway interface

最简单的web应用就是先把html用文件保存好,用现成的http服务器软件(Apache,Nginx,Lighttpd等)来接收用户请求,从中读取html,返回。

对于tcp连接,html请求解析最好让专门服务器软件实现,我们只需要专注于生成HTML文档,所以需要一个统一的接口,让我们编写web业务。 他就是WSGI

WSGI只要求实现一个函数application()就能相应html请求,他由WSGI服务器调用。python有内置WSGI服务器,在wsgiref模块,他仅供开发和测试,效率没有优化。

application(environ,start_response)接收两个参数

environ:包含所有HTTP请求的dict对象。

start_response:发送HTTP响应的函数。

start_response(‘200 OK‘,[(‘Content-Type‘,‘text/html‘)]) 只能调用一次,两个参数,一个是HTTP响应码,一个是list表示HTTP header,每个header用一个包含两个str的tuple表示。

from wsgiref.simple_server import make_server

def application(environ,start_response):
    start_response(‘200 OK‘,[(‘Content-Type‘,‘text/html‘)])
    return [b‘<h1>hello</h1>‘]

httpd=make_server(‘‘, 8000, application)
print(‘start‘)
httpd.serve_forever()

可以从environ中读取PATH_INFO:

environ[‘PATH_INFO‘][1:]

这样使用localhost:8000/Ivan 就可通过上面读取到Ivan

以上内容摘自http://www.liaoxuefeng.com/

纯粹是为了看的更仔细...

时间: 2024-12-28 16:14:17

python学习笔记(4)_WSGI接口的相关文章

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

【python学习笔记】7.更加抽象

[python学习笔记]7.更加抽象 类的定义就是执行代码块 在内存保存一个原始实例,可以通过类名来访问 类的实例化,是创建一个原始实例的副本, 并且所有成员变量与原始实例绑定 通过修改实例变量,可以解除与原始实例的绑定 self表示当前实例的引用 成员变量也称为特性 __bases__: 基类 __class__: 对象类型 __dict__: 所有特性 python的接口不用显式的制定对象必须包含哪些方法,只要对象符合当前接口就可以调用 可以对象上通过赋值的方式,创建变量 #!/usr/bi

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

python 学习笔记 13 -- 经常使用的时间模块之time

Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处理器的执行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口. datetime 中的类支持算术.比較和时区配置. *    calendar 模块能够创建周.月和年的格式化表示. 它还能够用来计算反复事件.给定日期是星期几,以及其

【Python学习笔记之二】浅谈Python的yield用法

在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor). 一.迭代器(iterator) 在Python中,for循环可以用于Python中的任何类型,包括列表.元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前

Python学习笔记_Chapter 7web开发

1.web应用元素 a.成员: web浏览器 web服务器 b.行为: web请求: 请求内容: 静态内容:如html文件,图像. 动态内容:需服务器运行一个程序进而做出响应. 网关接口&CGI脚本:标准化的生成动态内容的过程__网关接口,符合网关接口标准的程序__CGI脚本. web响应: 2.web应用:MVC模式 好的web应用应遵循MVC模式. Python学习笔记_Chapter 7web开发

廖Python学习笔记一

1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文字print()函数可以接受多个字符串,用逗号(,)隔开,依次输出遇到逗号输出一个空格.如图 1.1.1.2. 输入 提供了一个input(),可以让用户输入字符串,并存放到一个变量里. name = input() print(name) 1.1.2. 变量 是初中数学所学的代数基础知识的使用.

python学习笔记12-模块使用

python学习笔记12-模块使用 模块os,sys 什么是模块? 模块os,sys 模块是Python组织代码的一种基本方式 一个Python脚本可以单独运行,也可以导入到另外一个脚本运行,用import hello语句来导入,不用加入.py 什么是Python的 包? Python的模块可以按照目录组织为包 创建一个包的步骤: 创建一个名字为包名的目录 在改目录下创建一个__init__.py文件 根据需要,在该目录下存放脚本文件或已编译的扩展及子包 import pack.m1,pack.