Python框架 :WEB框架

一、概况

WEB框架本质上,就是一个SOCKET Server

WEB框架前面有WSGI或者是自己写的SOCKET,然后交给URL路由系统处理,然后交给某个函数或某个类,然后在模板里拿到模板然后模板和数据进行混合然后返回给用户!

在Python中, WSGI (Web服务器网关接口)定义了Web服务器与Web应用(或Web框架)之间的标准接口。在WSGI的规范下,各种各样的Web服务器和Web框架都可以很好的交互。

由于WSGI的存在,用Python中写一个简单的网络框架也变得非常容易然而,同很多其他的强大软件一样,要实现一个功能丰富,健壮高效的网络框架并非易事。如果您打算这么做,可能使用一个现成的Web框架(如 Django , Tornado , web.py 等)会是更合适的选择。

二、案例

首先,作为一个初步体验,我们可以借助 wsgiref.simple_server 来搭建一个简单无比(繁琐)的网络应用:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from wsgiref.simple_server import make_server

def RunServer(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    return '<h1>Rain007</h1>'

if __name__ == '__main__':
    httpd = make_server('',8000,RunServer)
    httpd.serve_forever()

运行以上的脚本,打开浏览器,输入 http://127.0.0.1:8000/ 后可以看到:一行“Rain007” 。

三、分解

WSGI中规定:应用程序是一个 可调用对象 (可调用对象),它接受 environ 和 start_response两个参数,并返回一个 字符串迭代对象 。

其中, 可调用对象 包括 函数 , 方法 ,  或者具有 __call__ 方法的 实例 ; environ 是一个字典对象,包括CGI风格的环境变量(CGI样式环境变量)和WSGI必需的变量(WSGI所需变量); start_response 是一个可调用对象,它接受两个 常规参数 (status,response_headers)和一个 默认参数 (exc_info); 字符串迭代 对象 可以是 字符串列表 , 生成器函数 或者具有 __iter__ 方法的可迭代实例更多细节参考 规范细节 。

原文地址:https://www.cnblogs.com/rain007/p/7123894.html