wsgi+webob+routes学习笔记-初学篇(end)

6      使用webob来包装wsgi请求和响应

先介绍下webob: WebOb是一个Python库,主要是用在WSGI中对请求环境变量request environment(也就是WSGI应用中的参数environ)进行包装(提供wrapper),并提供了一个对象来方便的处理返回response消息。WebOb提供的对象映射了大多数的HTTP方法,包括头解析,content协商等。这里的映射,就是说只需要对对象进行操作,就可以完成HHTP的方法,从而大大简化开发难度(http://blog.csdn.net/ztejiagn/article/details/8722838)。

因此,可以将代码进一步优化:

__author__= 'w00194081'

"""usewebob to warpper request"""

importwebob

importeventlet

fromeventlet import wsgi

fromwebob import Request

fromwebob import Response

 

classApplication(object):

    def __call__(self, env, start_response):

        req = Request(env)

        print req.method

        print req.body

        print req.headers

        response = Response(body="helloworld! I am sxmatch" , content_type='text/plain')

        return response(env, start_response)

 

defstart():

    print "start wsgi server"

    app=Application()

   wsgi.server(eventlet.listen(('192.168.82.191', 8090)), app)

 

wsgi_server= eventlet.spawn(start)

wsgi_server.wait()

 这里我使用webob将wsgi server传入的env封装为Webob中的Request对象,并打印了request对象中的method,body,headers属性。最后用Webob中的Response对象来封装响应

7    总结

Openstack综合使用wsgi,router,webob,卸程等多个组件以支撑其自身业务,所以在学习openstack这部分时,困难还是比较多的,需要一步一步从基本学起。

随便吐槽一下,为什么我的CSDN博客稍微写长一点就保存失败啊。。。。。好好的一篇文章硬是拆成了四篇。。。。。

你可能感兴趣的:(openstack知识学习,OpenStack)