自己使用python webob,paste.deploy,wsgi总结

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 loadapp2     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__方法。
时间: 2024-08-26 01:14:46

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

Python Paste.deploy 笔记

首先python paste是一个WSGI工具包,在WSGI的基础上包装了几层,让应用管理和实现变得方便.说实话,Python Paste的文档做的真差劲!加之python代码可读性本来就不怎么滴,真费劲. paste.deploy关键部分留个抓印: 1)python paste.deploy不能只装个paste.deploy包就可以工作了,还需要paste.script包 2)python paste.deploy中loadapp给的路径可用os.path.abspath(配置文件相对路径)得

paste deploy初探

这段时间刚着手开始研究Openstack Swift源码,为后续开发做准备. Swift依据python WSGI规范.WSGI(Web Server Gateway Interface)是Python应用程序或框架与Web服务器之间的一种接口,定义了一套借口来实现服务器与应用端的通信规范.按照一套规范,应用端想要通信,很简单,只需要实现一个接受两个参数的,含有__call__方法并返回一个可遍历的含有零个或者多个string结果的python对象.  而paste.deploy(Paste D

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

本keystone源码分析系列基于Juno版Keystone,于2014年10月16日随Juno版OpenStack发布. Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用户的身份认证.基于角色的授权管理.其他OpenStack服务的地址发现和安全策略管理等功能.Keystone作为开源云系统OpenStack中至关重要的组成部分,与OpenStack中几乎所有的其他服务(如Nova, Glance, Neutron等)都有着密切的联系.同时,Keystone作为开源

paste deploy 学习笔记

谈到WSGI,就免不了要了解paste,其中paste deploy是用来发现和配置WSGI应用的一套系统,对于WSGI应用的使用者而言,可以方便地从配置文件汇总加载WSGI应用(loadapp):对于WSGI应用的开发人员而言,只需要给自己的应用提供一套简单的入口点即可. paste deploy的官方介绍在这里,其发布在Pypi上的发行包在这里下载.借助Python的pypi包管理机制,我们可以非常方便地安装PasteDeploy: # pip install PasteDeploy 既然P

如何使用Paste.Deploy

转自:http://bingotree.cn/?p=100 1.Paste Deploy的一个组件,但是并不依赖于Paste的其它组件.其可以看成是一个独立的包.其主要用于通过一个配置文件完成WSGI应用和服务器的构建.对于一个不怎么了解Python的人来说,只要知道了这个配置文件如何编写,那么也能写出一个符合WSGI标准的应用.这样说可能还是有点抽象,下面看了例子就清楚了. 2.安装PasteDeploy 1 2 3 [[email protected]_DEV ~]# pip install

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

WSGI     Web服务器网关接口 WSGI主要规定了Web服务器如何与Web应用程序进行通信,以及如何将Web应用程序链接在一起来处理一个请求. wsgiref Python中的WSGI参考模块 一.WSGI 应用程序端: 1. 根据WSGI定义,应用程序应该是可调用对象 2.该可调用对象必须有两个固定参数:一个是含有服务器环境变量的字典,另一个是可调用对象,该对象使用HTTP状态码和会返回给客户端的HTTP头来初始化响应 environ 变量包含一些熟悉的环境变量,如HTTP_HOST,

python框架Django与WSGI

今天学习了一下用简单的Django框架与简单的WSGI服务器配套运行一个简单的Django项目: Django不是完整的web后端框架,它需要和一个WSGI服务器配套,由WSGI服务器负责网络通讯部分. 1.Django与WSGI WSGI全称:Web Server Gateway Interface,是Python定义的WSGI程序和WSGI服务器之间的一种接口 现一个WSGI应用,只需要满足3个要求: 是可调用的,比如是一个函数,或者是一个可调用类(具有__call__方法)的实例 WSGI

Python Web 应用:WSGI基础

在Django,Flask,Bottle和其他一切Python web 框架底层的是Web Server Gateway Interface,简称WSGI.WSGI对Python来说就像 Servlets对Java一样——一种用于web服务器并允许不同web服务器和应用框架基于通用API交互的通用规范.然而,对于大多数事情,Python版本实现相当简单. WSGI被定义在PEP 3333协议里面,如果在读完本文之后你想学到更多东西的话,作者建议读者先阅读一下简介. 本文将从一个应用开发者的角度来

OpenStack安装与配置2

第二部分 OpenStack安装与配置 一.引言 本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server1承载着Nova.Glance.Swift.Keystone及Horizon(OpenStack的Web UI)服务.Server2只用来运行实例管理的nova运算工作站.由于OpenStack组件采用分布式结构,其中的任何一部分或几个部分都可以安装在任意服务器上. Client1并不是安装所必须的,在