过滤器

过滤器在@wechat.handler 装饰器中使用,作为@wechat.handler 的第二个参数传入。 亦可将多个过滤器合成一个数组(list)传入。

预定义过滤器

预定义过滤器通过

from flask.ext.wechat import filters

引入。

预定义过滤器包括:

事件过滤器

过滤事件

filters.event

直接使用(无需括号)过滤所有事件消息。

过滤指定事件

filters.event(event)

传入事件名字符串,过滤符合该事件名的消息。

过滤关注事件

filters.event.subscribe

过滤取消关注事件

filters.event.unsubscribe

过滤点击事件

filters.event.click

过滤指定点击事件

filters.event.click(key)

过滤key为字符串key的点击事件

过滤跳转事件

filters.event.view

过滤指定跳转事件

filters.event.view(url, accuracy=False, ignorecase=False)

过滤url为字符串url的跳转事件, 可选参数accuracy表示是否精准匹配,默认否, ignorecase是否区分大小写,默认否。

消息过滤器

逻辑过滤器

默认过滤器

filters.all

所有消息都会成功进入该过滤器。 该过滤器优先级最低,只有在无法匹配其他过滤器的情况下才会匹配该过滤器。

且过滤器

filters.and_(*funcs)

传入多个过滤器,只有符合所有过滤器要求的情况下,才能进入控制器。 一旦有过滤器不符合条件,不再执行funcs中的下一过滤器(与and 相同)。

或过滤器

filters.or_(*funcs)

传入多个过滤器,在符合任一过滤器的情况下,就会进入过滤器。

自定义过滤器

你可以编写自定义过滤器。过滤器接收一个 WeChatRequest 对象。 返回True代表符合条件,False代表不符合条件。