Morepath中的Pymitter集成
项目描述
more.emit:Morepath中的pymitter集成
此包提供对pymitter的Morepath集成。
pymitter是扩展的Node.js EventEmitter 2方法的Python端口,提供命名空间、通配符和TTL。
快速入门
安装 more.emit
$ pip install -U more.emit
从EmitApp扩展您的App类
from more.pony import EmitApp
class App(EmitApp):
pass
现在您可以定义信号
from .app import App
@App.signal.on('myevent')
def handler1(arg, request):
print(request)
print('handler1 called with', arg)
@App.signal.on('myevent')
def handler2(arg, request):
print('handler2 called with', arg)
您可以从视图等地方发出信号
@App.json(model=Root)
def root_view(self, request):
request.app.signal.emit('myevent', 'foo', request)
return {
'name': 'Root'
}
示例
这是一个在创建用户和更新用户时发送确认电子邮件的信号发出示例。此示例使用more.pony。
signal.py
from .app import App
@App.signal.on('user.email_updated')
def send_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')
def user_collection_add(self, request):
email = request.json['email']
if not User.exists(email=email):
user = self.add(email=email)
@request.after
def after(response):
request.app.signal.emit('user.email_updated', user, request)
response.status = 201
else:
@request.after
def after(response):
response.status = 409
return {
'validationError': 'Email already exists'
}
@App.json(model=User, request_method='PUT')
def user_update(self, request):
if 'email' in request.json and User.exists(email=request.json['email']):
@request.after
def after(response):
response.status = 409
return {
'validationError': 'Email already exists'
}
else:
self.update(request.json)
if 'email' in request.json:
self.email_confirmed = False
@request.after
def after(response):
request.app.signal.emit('user.email_updated', self, request)
变更
0.2 (2020-04-26)
删除:删除了对Python 2的支持。
如果您想使用此版本,必须升级到Python 3。
添加了对Python 3.6、3.7和3.8以及PyPy 3.6的支持。
将Python 3.7作为默认测试环境。
添加了对Black代码格式化器的集成。
0.1 (2017-04-22)
首次公开发布。
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
more.emit-0.2.tar.gz (5.0 kB 查看哈希值)
构建版本
more.emit-0.2-py2.py3-none-any.whl (5.0 kB 查看哈希值)
关闭
更多.emit-0.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9b7e2920043f40c7f74ebad9a33b92a3776b87deb5ddce6dce6242a4a479f7a0 |
|
MD5 | fd840f602b61b245d5d7b4093e20c7bc |
|
BLAKE2b-256 | 0c9c677a479e1b23ef71e0c7faaa91428d57ce94820b057395dbfccac0337a56 |
关闭
更多.emit-0.2-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 516bb67b9d698ff4f71e4b1381cef1671502390ed5a04dde8346d34eab4b8ca9 |
|
MD5 | c884c9ab224448ad0e5dbc06c3611e99 |
|
BLAKE2b-256 | dc8a3b181c47809f988f8d8a5bdee7a35d4b5bc4e93568c063d58c6c69a66723 |