morepath中的pymitter集成

more.emit的Python项目详细描述


more.emit:morepath中的pymitter集成

此包为pymitter提供了更多路径集成。

pymitter是扩展节点的python端口。jsEventEmitter 2 提供名称空间、通配符和ttl的方法。

快速启动

安装more.emit

$ pip install -U more.emit

从emitapp扩展应用程序类:

frommore.ponyimportEmitAppclassApp(EmitApp):pass

现在您可以定义信号:

from.appimportApp@App.signal.on('myevent')defhandler1(arg,request):print(request)print('handler1 called with',arg)@App.signal.on('myevent')defhandler2(arg,request):print('handler2 called with',arg)

例如,您可以从视图发出信号:

@App.json(model=Root)defroot_view(self,request):request.app.signal.emit('myevent','foo',request)return{'name':'Root'}

示例

用户创建时发射信号的示例 以及发送确认电子邮件的用户更新。 本例使用more.pony

signal.py

from.appimportApp@App.signal.on('user.email_updated')defsend_confirmation_email(user,request):mailer=request.app.service(name='mailer')mailer.send_confirmation_email(user,request)

view.py

@App.json(model=UserCollection,request_method='POST')defuser_collection_add(self,request):email=request.json['email']ifnotUser.exists(email=email):user=self.add(email=email)@request.afterdefafter(response):request.app.signal.emit('user.email_updated',user,request)response.status=201else:@request.afterdefafter(response):response.status=409return{'validationError':'Email already exists'}@App.json(model=User,request_method='PUT')defuser_update(self,request):if'email'inrequest.jsonandUser.exists(email=request.json['email']):@request.afterdefafter(response):response.status=409return{'validationError':'Email already exists'}else:self.update(request.json)if'email'inrequest.json:self.email_confirmed=False@request.afterdefafter(response):request.app.signal.emit('user.email_updated',self,request)

更改

0.1(2017-04-22)

  • 首次公开发行。

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

推荐PyPI第三方库


热门话题
解释java选择方法   连接到127.0.0.1的java间歇性故障,连接到IP(eth0)时没有故障   java如何优雅地杀死hadoop作业/intercept`hadoop作业杀死`   java如何通过引导类加载器以编程方式加载另一个类?   url Java:在查询参数之前使用片段构建URI   在BroadLeaf表blc_order_属性中保存OrderAttributes值时发生java错误   安卓将功能从xml转换为java   java如何将数据写入文件?   java JPA SQL结果映射   Java中整数对象比较运算符的引用安全性   Spring测试失败:java。lang.NoClassDefFoundError:org/springframework/cglib/transform/impl/memorysafuendecaredthrowableStrategy   rich:extendedDataTable中的java行选择和数据处理   java为什么我需要在volatile上对多个线程使用synchronized?   java尽管构建成功,但为什么会出现此错误?   数组$ArrayList不能转换为java。util。java中的ArrayList   java如何根据泛型类型调用方法?   java将JLabel添加到JPanel,将JPanel添加到JFrame   如果MapStruct中的源为null,则java将父目标设置为null   JavaJBossDrools从DRL插入事实   java不同的JRE安装(windows)