作家
登录

用Python写一个简单的Web框架

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

'text/plain')] 
  •  
  •         self.start(status, response_headers) 
  •  
  •         yield "Not Found\n"  
  • 2、DRY

    清除GET_*办法中的反复代码,并且许可它们返回字符串:

    3、抽象出框架

    六、参考

    为了将类my_app抽象成一个自力的框架,须要作出以下修改:

    • 剥离出个中的具体处理细节:urls设备 和 GET_*办法(改成在多个类中实现响应的GET办法)
    • 把办法header实现为类办法(classmethod),以便利外部作为功能函数调用
    • 改用 具有__call__办法的 实例 来实现application

    运行脚本:

    修改后的application.py(最终版本):

    1. #!/usr/bin/env python 
    2.  
    3. # -*- coding: utf-8 -*- 
    4.  
    5.   
    6.  
    7. """application.py""" 
    8.  
    9.   
    10.  
    11. import re 
    12.  
    13.   
    14.  
    15. class my_app: 
    16.  
    17.     """my simple web framework""" 
    18.  
    19.   
    20.  
    21.     headers = [] 
    22.  
    23.   
    24.  
    25.     def __init__(self, urls=(), fvars={}): 
    26.  
    27.         self._urls = urls 
    28.  
    29.         self._fvars = fvars 
    30.  
    31.   
    32.  
    33.     def __call__(self, environ, start_response): 
    34.  
    35.         self._status = '200 OK' # 默认状况OK 
    36.  
    37.         del self.headers[:] # 清空上一次的headers 
    38.  
    39.   
    40.  
    41.         result = self._delegate(environ) 
    42.  
    43.         start_response(self._status, self.headers) 
    44.  
    45.   
    46.  
    47.         # 将返回值result(字符串 或者 字符串列表)转换为迭代对象 
    48.  
    49.         if isinstance(result, basestring): 
    50.  
    51.             return iter([result]) 
    52.  
    53.         else
    54.  
    55.             return iter(result) 
    56.  
    57.   
    58.  
    59.     def _delegate(self, environ): 

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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