wsgify装饰器将一个普通函数转变成WSGI应用程序。

class webob.dec.wsgify(func=None, RequestClass=None, args=(), kwargs=None, middleware_wraps=None)

from wsgiref.simple_server import make_server
from webob import Request, Response
from webob.dec import *

@wsgify
def test(req):
res = Response()
res.status = 200
res.body = "spch"
return res

class MyApp:
def __call__(self, environ, start_response):

req = Request(environ)

return test(environ, start_response)

application = MyApp()

httpd = make_server('localhost', 8081, application)
httpd.serve_forever()

其中,参数req为一个Request实例,可以通过req读取相应环境变量。

而且,我们可以定制装饰器

from wsgiref.simple_server import make_server
from webob import Request, Response
from webob.dec import *
from webob.exc import *

class MyRequest(Request):
@property
def is_local(self):
return self.remote_addr == '127.0.0.1'

@wsgify(RequestClass=MyRequest)
def myfunc(req):
if req.is_local:
return Response('hi!')
else:
raise HTTPForbidden

class MyApp:
def __call__(self, environ, start_response):

req = Request(environ)

return myfunc(environ, start_response)

application = MyApp()

httpd = make_server('localhost', 8081, application)

如何是本机访问,则输出’hi‘,否则不允许

最新文章

  1. CUDA ---共享存储器
  2. hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
  3. Linux老是提示compat-libstdc++ is not installed的原因
  4. JSOI Round 2题解
  5. jsp页面el表达式不起作用
  6. 巧用MySQL之Explain进行数据库优化
  7. Nodejs之模板ejs
  8. JS自定义对象以及相关成绩系统完整案例演示
  9. Beta冲刺Day7
  10. mysql自带的example测试数据库导入Centos6.5
  11. 从GitHub下载demo时遇到的依赖问题
  12. linux系统下MySQL表名区分大小写问题
  13. Java基础知识➣网络Socket(六)
  14. stund客户端使用结果说明
  15. MySQL MHA 搭建&测试(环境:CentOS7 + MySQL5.7.23)
  16. Oracle OLAP 与 OLTP 介绍
  17. AS-->创建项目(慢)和打开项目(慢)等需要注意的问题
  18. LeetCode--100--相同的树
  19. websevice之三要素
  20. windows环境下mongodb下载、安装和使用总结

热门文章

  1. 18.3.2从Class上获取信息(构造器)
  2. RHEL 6.5----iscsi多路径存储
  3. php多文件上传类(含示例)
  4. 【转】java节省内存的几条建议
  5. void运算符
  6. 开发原生安卓cordova插件(基础)
  7. 伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件
  8. Android Platform Version 和 API Level对照
  9. Android学习笔记(十九) OkHttp
  10. [转]Qt 5.5 操作 Excel 的速度 效率问题