一、概述
二、大年夜demo_app开端
三、WSGI中的application
四、区分URL
五、重构 1、正则匹配URL
2、DRY
3、抽象出框架
六、参考
一、概述
在Python中,WSGI(Web Server Gateway Interface)定义了Web办事器与Web应用(或Web框架)之间的标准接口。在WSGI的规范下,各类各样的Web办事器和Web框架都可以很好的交互。
因为WSGI的存在,用Python写一个简单的Web框架也变得异常轻易。然而,同很多其他的强大年夜软件一样,要实现一个功能丰富、结实高效的Web框架并非易事;如不雅您计算这么做,可能应用一个现成的Web框架(如 Django、Tornado、web.py 等)会是更合适的选择。
二、大年夜demo_app开端
起首,作为一个初步体验,我们可以借助 wsgiref.simple_server 来搭建一个简单无比(trivial)的Web应用:#!/usr/bin/env python
# -*- coding: utf-8 -*-
fromwsgiref.simple_server import make_server, demo_app
httpd = make_server('', 8086, demo_app)
sa = httpd.socket.getsockname()
print 'http://{0}:{1}/'.format(*sa)
# Respond torequests until processiskilled
httpd.serve_forever()$ python code.py
http://0.0.0.0:8086/
打开浏览器,输入http://0.0.0.0:8086/后可以看到:一行”Hello world!” 和 浩瀚情况变量值。
三、WSGI中的application
WSGI中规定:application是一个 可调用对象(callable object),它接收 environ 和 start_response 两个参数,并返回一个 字符串迭代对象。
个中,可调用对象 包含 函数、办法、类 或者 具有__call__办法的 实例;environ 是一个字典对象,包含CGI风格的情况变量(CGI-style environment variables)和 WSGI必须的变量(WSGI-required variables);start_response 是一个可调用对象,它接收两个 惯例参数(status,response_headers)和 一个 默认参数(exc_info);字符串迭代对象 可所以 字符串列表、生成器函数 或者 具有__iter__办法的可迭代实例。更多细节参考 Specification Details。
The Application/Framework Side 中给出了一个典范的application实现:#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""application.py"""
def simple_app(environ, start_response):
"""Simplest possible application object"""
status = '200 OK'
response_headers = [('Content-type','text/plain')]
推荐阅读
FreeFileSync 是一个自由、开源以及跨平台的文件夹比较及同步软件,它可以赞助你同步 Linux、Windows 和 Mac OS 中的文件和文件夹。它是便携的,也可以被安装在本地体系中,它的功能丰富>>>详细阅读
地址:http://www.17bianji.com/lsqh/35657.html