能够为plone添加路由配置

collective.routes的Python项目详细描述


简介

plone的路由实现。是什么推动了路线的实施 正在查询门户目录。

路线示例:

/posts/{effective:year}/{effective:month}/{effective:day}

添加路线:

 from collective.routes import addRoute
 addRoute('BlogItems',
        '/posts/{effective:year}/{effective:month}/{effective:day}',
        defaultQuery={'portal_type': 'News Item'},
allowPartialMatch=True)

启用它

在路由可用之前,您需要首先启用该路由 在你想使用它的网站上。这可以通过 站点设置中的路由配置面板。

现成路线

collective.routes有几个示例路由 它是预先包装的。

博客文章 < DL>
博客文章
/posts/{effective:year}/{effective:month}/{effective:day}

exmaple网址:

/posts/2011 ~ Show all posts from 2011
/posts/2011/10 ~ Show all from 2011 and the month of October
/posts/2011/10/5 ~ Show the blog posted October 5, 2011

定义:

addRoute('Blog Posts',
  '/posts/{effective:year}/{effective:month}/{effective:day}',
  defaultQuery={'portal_type': 'News Item',
                  'sort_on': 'effective',
                  'sort_order': 'reverse'},
  allowPartialMatch=True)

标记内容

< DL>
标记
/tagged/{subject}/{subject}/{subject}

示例网址:

/tagged/foo ~ Show all posts tagged `foo`
/tagged/foo/bar ~ Show all posts tagged `foo` and `bar`
/tagged/foo/bar/woo ~ Show all posts tagged `foo`, `bar` and `woo`

定义:

addRoute('Tagged',
     '/tagged/{Subject}/{Subject}/{Subject}',
     defaultQuery={'portal_type': 'News Item',
                   'sort_on': 'effective',
                   'sort_order': 'reverse'},
     allowPartialMatch=True)

路由语法

语法非常基本,只有一些变化。

文字

文本字符串匹配:

/string-to-match

将匹配"字符串匹配"

查询

匹配任何内容并将其保持为查询参数:

/{Subject}

将匹配任何字符串,然后将该值保留为查询 用于门户目录查询的参数。

日期查询

有三个子指令与零件匹配:

/{effective:year}/{effective:month}/{effective:day}

然后将对门户目录进行查询 使用。

自定义对象检索

如果您希望绕过普通的门户目录查询 要检索对象,可以提供自己的对象 查找方法。

示例:

/posts/{effective:year}/{effective:month}/{effective:day}
0

摆弄已发布的对象

如果您想在最后一刻添加接口 在发布遍历之前,这是您要使用的。

这对于添加接口非常有用,因为 已发布的对象被包装,以便维护面包屑 出版时。

示例:

/posts/{effective:year}/{effective:month}/{effective:day}
1

自定义呈现的视图

您可以自定义为找到的 对象也:

/posts/{effective:year}/{effective:month}/{effective:day}
2

addroute签名

允许参数

< DL>
路由名(必需)
路线名称
路线(必需)
实际路线规范
默认查询(默认为{})
为查找程序提供的默认查询
objectfinder(默认为collective.routes.finders.catalogobjectfinder)
用于查找结果发布对象的方法
mungeobject(默认为无)
由于实际发布的是包装器对象,因此 能够在 出版
自定义视图名称(默认为无)
要为找到的对象呈现的自定义视图
AllowPartialMatch(默认为False)
如果整个url不匹配,您仍然可以尝试发布它。 这对于您希望允许的目录查找器路由非常有用 用户提供部分URL并仍然查找对象。
面包屑工厂(默认为无)
重写面包屑生成。必须返回一个元组 {"绝对url":url,"title":title}值。
自定义谓词(默认为[])
用于检查传入请求的自定义谓词函数的iterable 他们匹配。谓词必须采用两个参数( request query ),其中 request 是当前请求对象,而查询是当前生成的查询 从路线上。函数必须返回布尔值。如果匹配,则为true;如果不匹配,则为false。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript问题:通过URL用网站数据填充Textview   java TabLayout Android,如何用几个标签填充整个屏幕宽度,并用大量标签滚动?   Eclipse Java运行的文件不再存在于我的工作区中   安装两个Java版本时,使用Java的windows链接不起作用   java将多个图形添加到单个JPanel   java Kafka ConsumerFactory,带有两个Desiarizer   使用反射更改java类超类   当一致性测试失败时,java有没有办法让堆栈跟踪显示在控制台中   java映射到基元类型的HashMap的快速替代方案是什么?   java关闭一个jframe所有剩余的打开jframe都将关闭。   java为什么不推荐“使用getString()获取设备标识符”?   java值比较和值赋值之间有什么性能差异吗?   Java实体数组到JavaScript数组   java使用流将一个列表转换为另一个列表   在JTree中保存对象,但更改显示的名称(java swing)?   java“Hello world”Android应用程序,文件尽可能少,没有IDE,只有文本编辑器   java在方法之间传递值   java如何为项目数组创建ParseQuery?