作家
登录

用Python写一个简单的Web框架

作者: 来源: 2017-06-09 05:39:28 阅读 我要评论

用Python写一个简单的Web框架

  •  一、概述
  • 二、大年夜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应用:

  1. #!/usr/bin/env python 
  2.  
  3. # -*- coding: utf-8 -*- 
  4.  
  5.   
  6.  
  7. from wsgiref.simple_server import make_server, demo_app 
  8.  
  9.   
  10.  
  11. httpd = make_server('', 8086, demo_app) 
  12.  
  13. sa = httpd.socket.getsockname() 
  14.  
  15. print 'http://{0}:{1}/'.format(*sa) 
  16.  
  17.   
  18.  
  19. # Respond to requests until process is killed 
  20.  
  21. httpd.serve_forever()  
  1. $ python code.py 
  2.  
  3. 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实现:

  1. #!/usr/bin/env python 
  2.  
  3. # -*- coding: utf-8 -*- 
  4.  
  5.   
  6.  
  7. """application.py""" 
  8.  
  9.   
  10.  
  11. def simple_app(environ, start_response): 
  12.  
  13.     """Simplest possible application object""" 
  14.  
  15.     status = '200 OK' 
  16.  
  17.     response_headers = [('Content-type''text/plain')] 
  18.  
  19.  1/11    1 2 3 4 5 6 下一页 尾页

      推荐阅读

      FreeFileSync:在Ubuntu中对比及同步文件

    FreeFileSync 是一个自由、开源以及跨平台的文件夹比较及同步软件,它可以赞助你同步 Linux、Windows 和 Mac OS 中的文件和文件夹。它是便携的,也可以被安装在本地体系中,它的功能丰富>>>详细阅读


    本文标题:用Python写一个简单的Web框架

    地址:http://www.17bianji.com/lsqh/35657.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)