转自 http://blog.youkuaiyun.com/spch2008/article/details/9004926
1.下载库文件
webob库:http://download.youkuaiyun.com/detail/spch2008/5497755
routes库:http://download.youkuaiyun.com/detail/spch2008/5497757
repoze库:http://download.youkuaiyun.com/detail/spch2008/5499231
2. 组织代码
3. 代码
- '''''
- Created on 2013-6-1
- @author: spch2008
- '''
- from wsgiref.simple_server import make_server
- import routes.middleware
- import webob.dec
- import webob.exc
- class Controller:
- @webob.dec.wsgify
- def __call__(self, req):
- return webob.Response("Hello World!")
- class Router(object):
- def __init__(self):
- self._mapper = routes.Mapper()
- self._mapper.connect('/spch',
- controller=Controller(),
- action='index',
- conditions={'method': ['GET']})
- self._router = routes.middleware.RoutesMiddleware(self._dispatch, self._mapper)
- @webob.dec.wsgify
- def __call__(self, req):
- return self._router
- @staticmethod
- @webob.dec.wsgify
- def _dispatch(req):
- match = req.environ['wsgiorg.routing_args'][1]
- if not match:
- return webob.exc.HTTPNotFound()
- app = match['controller']
- return app
- app = Router()
- httpd = make_server('localhost', 8282, app)
- httpd.serve_forever()
22行:创建一个mapper
23行:#注册一个路由
28行:创建一个RoutesMiddleware对象,匹配路由,修改环境变量后,调用self._dispatch
4. 运行结果