码迷,mamicode.com
首页 > 编程语言 > 详细

Python Web 应用:WSGI基础

时间:2016-09-08 17:55:38      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

DjangoFlaskBottle和其他一切Python web 框架底层的是Web Server Gateway Interface,简称WSGI。WSGI对Python来说就像 ServletsJava一样——一种用于web服务器并允许不同web服务器和应用框架基于通用API交互的通用规范(基础教程qkxue.net)。然而,对于大多数事情,Python版本实现相当简单。

WSGI被定义在PEP 3333协议里面,如果在读完本文之后你想学到更多东西的话,作者建议读者先阅读一下简介。

 

本文将从一个应用开发者的角度来向你介绍WSGI说明,并且向你展示怎样直接通过WSGI来开发应用程序(如果你迫不及待的话)。

你的第一个WSGI应用

下面是最基本的Python web应用:

?
def app(environ, start_fn):
start_fn(‘200 OK‘, [(‘Content-Type‘, ‘text/plain‘)])
return ["Hello QKXue.NET World!\n"]
就是这样!整个文件。先命名为app.py然后在任何WSGI可编译服务器上面运行,然后你就可以得到一个Hello World并伴随一个200的响应状态码(手机app开发公司ty300.com)。你可以使用gunicorn来完成,通过pip(pip install gunicorn)来安装并执行gunicorn app:app。这条命令告诉gunicorn从应用模块里的应用变量去获取可调用的WSGI。

刚才,十分兴奋吧。仅仅三行代码就可以运行一个应用?那一定是某种意义上的记录(不包括PHP,因为mod_php在起作用)。我敢打赌你现在一定想更加深入了解下去了。

所以一个WSGI应用最重要的部分是什么呢?

一个WSGI应用是Python可调用的,就像一个函数,一个类,或者一个有__call__方法的类实例
可调用的应用程序必须接受两个参数:environ,一个包含必要数据的Python字典,start_fn,它自己是可调用的。
应用程序必须能调用start_fn和两个参数:状态码(字符串),和一个头部以两个元组表述的列表。
应用程序返回一个在返回体里包含bytes的方便的可迭代对象,流式的部分——例如,一个个只包含“Hello,World!”字符串的列表。(如果app是一个类的话,可以在__iter__方法里完成)

Python Web 应用:WSGI基础

标签:

原文地址:http://www.cnblogs.com/cainiaojiaocheng/p/5853563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!