`
pypy
  • 浏览: 92082 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

paste deploy python ini 配置文件简单说明

阅读更多
配合 http://www.python.org/dev/peps/pep-0333/
http://pythonpaste.org/deploy/
看下面的example(从网络上改造而来,出处URL也搞忘记的),很快会对python的paste如何组织wsgi有一个简单的了解,

pastedeploylab.ini

[DEFAULT]  
key1=value1  
key2=value2  
key3=values  
[composite:pdl]  
use=egg:Paste#urlmap  
/:root  
/calc:calc  
[filter:logrequest]  
username = root  
password = root123  
paste.filter_factory = pastedeploylab:LogFilter.factory  
[filter:testrequest]  
username = admin 
password = admin
paste.filter_factory = pastedeploylab:TestFilter.factory  

[app:calculator]  
description = This is an "+-*/" Calculator   
paste.app_factory = pastedeploylab:Calculator.factory  

[app:showversion]  
version = 1.0.0  
paste.app_factory = pastedeploylab:ShowVersion.factory  

[pipeline:root]  
pipeline = logrequest testrequest showversion 
[pipeline:calc]  
pipeline = logrequest calculator


pastedeployed.py

import os
import webob
from webob import Request
from webob import Response
from paste.deploy import loadapp
from wsgiref.simple_server import make_server

#Filter
class LogFilter():
    def __init__(self,app):
        self.app = app

    def __call__(self,environ,start_response):
        print "filter:LogFilter is called."
        return self.app(environ,start_response)

    @classmethod
    def factory(cls, global_conf, **kwargs):
        print "in LogFilter.factory", global_conf, kwargs
        return LogFilter


class TestFilter():
    def __init__(self,app):
        self.app = app

    def __call__(self,environ,start_response):
        print "filter:TestFilter is called."
        return self.app(environ,start_response)

    @classmethod
    def factory(cls, global_conf, **kwargs):
        print "in TestFilter.factory", global_conf, kwargs
        return TestFilter
    
class ShowVersion():
    def __init__(self):
        pass

    def __call__(self,environ,start_response):
        start_response("200 OK",[("Content-type", "text/plain")])
        return ["Paste Deploy LAB: Version = 1.0.0",]

    @classmethod
    def factory(cls,global_conf,**kwargs):
        print 
        print "in ShowVersion.factory:"
        print "global_conf=", global_conf
        print "kwargs     =", kwargs
        return ShowVersion()


class Calculator():
    def __init__(self):
        pass
    
    def __call__(self,environ,start_response):
        req = Request(environ)
        res = Response()
        res.status = "200 OK"
        res.content_type = "text/plain"
        # get operands
        operator = req.GET.get("operator", None)
        operand1 = req.GET.get("operand1", None)
        operand2 = req.GET.get("operand2", None)
        print req.GET
        opnd1 = int(operand1)
        opnd2 = int(operand2)
        if operator == u'plus':
            opnd1 = opnd1 + opnd2
        elif operator == u'minus':
            opnd1 = opnd1 - opnd2
        elif operator == u'star':
            opnd1 = opnd1 * opnd2
        elif operator == u'slash':
            opnd1 = opnd1 / opnd2
        res.body = "%s /nRESULT= %d" % (str(req.GET) , opnd1)
        return res(environ,start_response)
    @classmethod
    def factory(cls,global_conf,**kwargs):
        print "in Calculator.factory", global_conf, kwargs
        return Calculator()


if __name__ == '__main__':
    configfile="pastedeploylab.ini"
    appname="pdl"
    wsgi_app = loadapp("config:%s" % os.path.abspath(configfile), appname)
    server = make_server('localhost',8989,wsgi_app)
  
  server.serve_forever()
0
0
分享到:
评论

相关推荐

    python3-paste-deploy-2.0.1-4.el8.noarch.rpm

    官方离线安装包,亲测可用

    Python库 | minitage.paste-1.3.162.zip

    Paste Deploy的核心功能在于它的“paste.ini”配置文件,它允许开发者以简洁、可读性强的方式定义和连接WSGI应用、中间件、服务器和其他相关组件。 在minitage.paste-1.3.162这个版本中,开发者可以期待一系列改进...

    python-paste-deploy-1.5.0-10.el7.noarch.rpm

    官方离线安装包,亲测可用

    PIL图像处理模块paste方法简单使用详解

    ### PIL图像处理模块paste方法简单使用详解 #### 一、PIL与Pillow模块简介 在Python编程语言中,PIL(Python Imaging Library)是一个强大的图像处理库,它提供了多种功能来处理各种类型的图像文件。然而,由于PIL...

    Python库 | Paste-0.9.6-py2.3.egg

    1. **Paste Deploy**:这是一个配置解析器,可以读取并解析ini格式的配置文件,使开发者能够根据不同的环境参数动态地部署Web应用。 2. **Paste Script**:提供了一套命令行工具,用于创建、测试和部署WSGI应用。它...

    Python库 | minitage.paste-0.0.1-alpha37.zip

    3. **Configurators(配置器)**:`minitage.paste`支持通过配置文件来设置和组合中间件,这些配置文件通常以`.ini`格式存在,易于理解和维护。 4. **Server Wrappers(服务器包装器)**:`paste`还提供了对多种Web...

    Python库 | Paste-1.0.1-py2.4.egg

    《Python库 Paste-1.0.1-py2.4.egg:理解与应用》 在Python的世界里,库是开发者的重要工具,它们提供了一系列预定义的函数和模块,简化了编程过程,提高了代码的可复用性。本文将深入探讨Python库 Paste-1.0.1-py...

    python-paste-deploy-1.5.2-6.el7.noarch.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    Python库 | oslo.middleware-2.5.0-py2.py3-none-any.whl

    6. **PasteDeploy**: 这是一个配置管理工具,用于根据paste.ini文件中的配置加载和组合中间件链。 7. **RequestId**: 为每个请求分配唯一的ID,便于跟踪和诊断问题。 oslo.middleware库的安装非常简单,通过Python...

    Python库 | minitage.paste-0.0.1-alpha32.zip

    《Python库minitage.paste-0.0.1-alpha32深度解析》 在Python的世界里,库扮演着至关重要的角色,它们为开发者提供了丰富的功能和便利性,大大提升了编程效率。今天我们要深入探讨的是一个名为`minitage.paste`的...

    python图片指定区域替换img.paste函数的使用

    ### Python 图片指定区域替换:`img.paste` 函数详解 在图像处理领域,Python 提供了强大的库——PIL(Python Imaging Library),它可以让开发者轻松地进行图像的读取、显示、编辑等操作。其中,`img.paste` 函数...

    Python库 | django_paste-1.0.0-py3-none-any.whl

    **Python库 django_paste-1.0.0-py3-none-any.whl** 在Python的开发环境中,我们经常需要利用各种库来简化工作,提高效率。`django_paste`是这样一个库,它专为Python设计,特别适用于Django框架的项目。这个库的...

    python安装设置说明

    ### Python安装及Jupyter Notebook配置知识点 #### 一、Python安装背景与常见问题 - **背景**:Python作为一门强大的编程语言,在数据科学、机器学习等领域应用广泛。无论是初学者还是资深开发者,都需要掌握如何...

    Python-CopyTranslatePaste是一个即时将您的输入剪切板中的文字进行翻译的一个工具

    Python的库生态系统丰富,使得开发此类翻译工具变得相对简单。 2. **剪贴板操作**:CopyTranslatePaste能够监听用户的剪贴板活动,一旦检测到有新的文本内容,就会自动触发翻译过程。这得益于Python的clipboard库,...

    Paste_3.0.9.dmg

    Paste

    PDF转长图_python_代码_下载

    此外,你还可以查找配置文件(如`.config`或`.json`)以了解可调整的参数。 总结,Python结合`PIL`和`PyPDF2`库可以轻松地将PDF转换为长图。`pdf-to-long-image-main`项目为这一过程提供了一个便捷的解决方案,具体...

    PyPI 官网下载 | Paste-1.5.tar.gz

    标题中的"PyPI 官网下载 | Paste-1.5.tar.gz"表明这是一个从Python Package Index(PyPI)官方源下载的软件包,名为Paste,版本号为1.5,其格式是tar.gz,这是一种常见的在Linux/Unix环境中打包和压缩文件的方法。...

    Python制作酷炫二维码(有界面,exe打包)

    在压缩包中,`二维码生成器.spec`是`PyInstaller`的配置文件,用于指定要打包的入口脚本、图标、窗口大小等信息。通过修改此文件,可以定制打包过程的细节。运行`pyinstaller 二维码生成器.spec`命令即可生成exe文件...

    python处理剪贴板内容源码及exe

    标题“python处理剪贴板内容源码及exe”和描述中的链接指向了一个关于使用Python...了解并掌握这些知识,可以帮助开发者创建涉及剪贴板交互的Python应用,比如自动化脚本、数据抓取工具,甚至是简单的用户界面程序。

Global site tag (gtag.js) - Google Analytics