python paste介绍和使用教程

paste定义了一些列wsgi开发的库,




paste.deploy定义了配置wsgi应用程序的ini文件格式和对应的解析库,此外还提供了一个简单的函数(loadapp),用于从ini格式的配置文件中加载wsgi应用程序。


首先看看paste.deploy使用的ini配置文件格式。

配置文件的后缀为.ini,内容被分为好多session,一个session的session name格式为[type:name],不是这种类型的session都会被忽略。session中的内容为一个个的key = value 对,其中key和value都为string类型,并且区分大小写,可以包含标点和空白符,但是头部和尾部的空白部分将会被去掉,如果需要换行,只需下一行开始是空白字符即可。此外,注释以#开始


session有如下几种类型:

[app:name] 定义一个wsgi应用

[server:name]   定义一个wsgi的server

[composite:name]   表示会将请求重定向到其他wsgi应用

[filter:name]   定义一个过滤器,对某个wsgi应用进一步包装

[DEFAULT]   全局变量的初始值


[composite:main]

use = egg:Paste#urlmap 

/ = home

/blog = blog

/wiki = wiki

/cms = config:cms.ini

这是一个composite段,表示我们将采用paste egg包中的urlmap来实现composite,根据请求的前缀分别将其路由到不同的wsgi应用进行处理。最后一行表示,将对/cms路径下的所有请求路由给另外一个配置文件,具体的处理细节再根据该cms.ini配置文件。


[app:home]

use = egg:Paste#static

document_root = %(here)s/htdocs

该段定义了一个wsgi的应用程序,也就是paste egg包中的处理静态文件的static,此外还传递了static应用需要的参数。其中%(here)s定义了一个变量,具体的值可以参考DEFAULT段。


[app:wiki]

use = call:mywiki.main:application

database = sqlite:/home/me/wiki.db

定义了一个wsgi的app,不同的是,这里采用了自定义的wsgi app。我们知道,python中一切都是对象,


[filter-app:blog]

use = egg:Authentication#auth

next = blogapp

roles = admin

htpasswd = /home/me/users.htpasswd

[app:blogapp]

use = egg:BlogApp

database = sqlite:/home/me/blog.db

filter是wsgi中的过滤器,用以将一个wgi app包装成另外一个app。filter-app表示希望对app进行包装,需要包装的app通过next指明。该session表示,再具体调用blogapp之前会首先采用Authentication egg包中的auth进行用户身份的验证。紧跟其后的[app:blogapp]给出了实际要调用的app。



http://blog.csdn.net/hzrandd/article/details/10834381

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值