2、DRY
清除GET_*办法中的反复代码,并且许可它们返回字符串:
3、抽象出框架
六、参考
为了将类my_app抽象成一个自力的框架,须要作出以下修改:
- 剥离出个中的具体处理细节:urls设备 和 GET_*办法(改成在多个类中实现响应的GET办法)
- 把办法header实现为类办法(classmethod),以便利外部作为功能函数调用
- 改用 具有__call__办法的 实例 来实现application
运行脚本:
修改后的application.py(最终版本):
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """application.py"""
- import re
- class my_app:
- """my simple web framework"""
- headers = []
- def __init__(self, urls=(), fvars={}):
- self._urls = urls
- self._fvars = fvars
- def __call__(self, environ, start_response):
- self._status = '200 OK' # 默认状况OK
- del self.headers[:] # 清空上一次的headers
- result = self._delegate(environ)
- start_response(self._status, self.headers)
- # 将返回值result(字符串 或者 字符串列表)转换为迭代对象
- if isinstance(result, basestring):
- return iter([result])
- else:
- return iter(result)
- def _delegate(self, environ):
推荐阅读
FreeFileSync 是一个自由、开源以及跨平台的文件夹比较及同步软件,它可以赞助你同步 Linux、Windows 和 Mac OS 中的文件和文件夹。它是便携的,也可以被安装在本地体系中,它的功能丰富>>>详细阅读
本文标题:用Python写一个简单的Web框架
地址:http://www.17bianji.com/lsqh/35657.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示