paste.deploy就是一个可以配置wsgi_app的工具,可以让服务器运行时,按照配置文件执行一系列的程序。需要使用.ini配置文件。

(1)这里补充一下当时没看到的配置文件

1.[app:main]的意识是只有一个app,所以就叫main,其实叫别的也无所谓。

use=egg:MyAPP   egg其实是一个程序包,是需要单独安装的东西。egg包是目前最流行的python应用打包部署方式

2.[composite:main]                      composite是Paste中的一个模块,这个意思是用Paste egg 包中的urlma,就是Paste用egg打过包了,所以这么用

use = egg:Paste#urlma

3.[app:wiki]                                call(表示使用call方法):模块的完成路径名字:应用变量的完整名字,即调用了applicationde __call__(global,**kawrgs)

use = call:mywiki.main:application

4.[app:myfacapp]

paste.app_factory = myapp.modulename:app_factory

paste.app_factory,意思是调用了myapp.modulename.py的app_factory的方法,该方法的参数为app_factory(global_conf,**local_conf),在该方法

中会返回一个app,这个app是一个可调用对象,就是有__call__。注意paste.app_factory必须这样写,但是调用的可以不叫app_factory

5.同理的paste.fileter_factory是一样的。

6.wsgi的使用流程和注意事项:


1     from paste.deploy import loadapp
2 from wsgiref.simple_server import make_server1
3 if __name__=='__main__':
2 configfile="serverconf.ini" #这里是其他程序里的,所以是这样
3 appname="pd1" #这里也不是必须的
4 wsgi_app=loadapp("config:%s" % os.path.abspath(configfile),appname) #注意必须使用路径
5 server=make_server('192.168.1.104',8080,wsgi_app)
6 server.serve_forever()
7 pass
 首先当调用Loadapp时就会执行conf中的app_factory方法,并会在该方法中的return app时,调用该app的init程序。但是不会返回和调用__call__方法。然后会不停等待。只有当有接收到
请求时,才会执行该__call__方法。方法返回后__init__不会退出。下次请求时,不会执行__init__了。只会执行__call__方法。

自己使用python webob,paste.deploy,wsgi总结的更多相关文章

  1. 详解Paste deploy

    原创作品,转载注明本文出处:http://www.cnblogs.com/Security-Darren/p/4087587.html 谈到WSGI,就免不了要了解paste,其中paste depl ...

  2. Python Paste.deploy 笔记

    首先python paste是一个WSGI工具包,在WSGI的基础上包装了几层,让应用管理和实现变得方便.说实话,Python Paste的文档做的真差劲!加之python代码可读性本来就不怎么滴,真 ...

  3. 探索 OpenStack 之(11):cinder-api Service 启动过程分析 以及 WSGI / Paste deploy / Router 等介绍

    OpenStack 中的每一个提供 REST API Service 的组件,比如 cinder-api,nova-api 等,其实是一个 WSGI App,其主要功能是接受客户端发来的 HTTP R ...

  4. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

  5. paste deploy初探

    这段时间刚着手开始研究Openstack Swift源码,为后续开发做准备. Swift依据python WSGI规范.WSGI(Web Server Gateway Interface)是Pytho ...

  6. 如何使用Paste.Deploy

    转自:http://bingotree.cn/?p=100 1.Paste Deploy的一个组件,但是并不依赖于Paste的其它组件.其可以看成是一个独立的包.其主要用于通过一个配置文件完成WSGI ...

  7. keystone源码分析(一)——Paste Deploy的应用

    本keystone源码分析系列基于Juno版Keystone,于2014年10月16日随Juno版OpenStack发布. Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用 ...

  8. how to read openstack code : paste deploy

    本篇分为以下几个部分 paste 是什么 怎样使用paste paste of neutron paste 是什么 WSGI 是python 中application 和 web server互通的标 ...

  9. [Python WEB开发] 使用WSGI开发类Flask框架 (二)

    WSGI     Web服务器网关接口 WSGI主要规定了Web服务器如何与Web应用程序进行通信,以及如何将Web应用程序链接在一起来处理一个请求. wsgiref Python中的WSGI参考模块 ...

随机推荐

  1. python实现全角半角的相互转换

    缘起 在自然语言处理过程中,全角.半角的的不一致会导致信息抽取不一致,因此需要统一. 转换说明 全角半角转换说明 有规律(不含空格): 全角字符unicode编码从65281~65374 (十六进制 ...

  2. HDU 4630 No Pain No Game 树状数组+离线查询

    思路参考 这里. #include <cstdio> #include <cstring> #include <cstdlib> #include <algo ...

  3. asp.net mvc4使用百度ueditor编辑器

    原文  http://www.cnblogs.com/flykai/p/3285307.html    已测试 相当不错 前言 配置.net mvc4项目使用ueditor编辑器,在配置过程中遇见了好 ...

  4. 字符串 —— String?StringBuffer?StringBuilder?

    字符串常用的操作就是拼接,特别是SQL语句的拼接. 做了个简单的试验,它们之间的差别惊人! StringBuffer: public void testStringBuffer() { long st ...

  5. 每天一个小算法(Shell Sort2)

    希尔排序: 伪代码: input: an array a of length n with array elements numbered 0 to n − 1 inc ← round(n/2) wh ...

  6. [HDOJ5584]LCM Walk(数论,规律)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584 给一个坐标(ex, ey),问是由哪几个点走过来的.走的规则是x或者y加上他们的最小公倍数lcm ...

  7. Android uiautomator gradle build system

    This will guide you through the steps to write your first uiautomator test using gradle as it build ...

  8. hibernate lazy=false annotation设置

    工程报错如下: org.hibernate.LazyInitializationException: could not initialize proxy - no Session 解决方法: 在类的 ...

  9. git deployment strategy

    http://nicolasgallagher.com/simple-git-deployment-strategy-for-static-sites/ You can still ignore a ...

  10. C#随机颜色和随机字母

    //随机获取颜色 public System.Drawing.Color GetRandomColor() { Random RandomNum_First = new Random(Guid.New ...