作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个在 before_insert
和 before_update
上触发的回调。执行的代码是完全相同的代码,我想做的是重构它,以便 @listens_for
执行相同的方法。
这是我的:
@listens_for(Employee, 'before_insert')
def change_employee_path(mapper, connection, target):
if target.path:
os.rename(os.path.join(app.config['UPLOAD_FOLDER'], target.path), 'static/images/' + remove_blackduck_address(target.email))
target.path = remove_blackduck_address(target.email)
@listens_for(Employee, 'before_update')
def change_employee_path(mapper, connection, target):
if target.path:
os.rename(os.path.join(app.config['UPLOAD_FOLDER'], target.path), 'static/images/' + remove_blackduck_address(target.email))
target.path = remove_blackduck_address(target.email)
这就是我想要的(顺便说一句不起作用):
def change_employee_path(mapper,connection, target):
if target.path:
os.rename(os.path.join(app.config['UPLOAD_FOLDER'], target.path), 'static/images/' + remove_blackduck_address(target.email))
target.path = remove_blackduck_address(target.email)
@listens_for(Employee, 'before_insert')
change_employee_path(mapper, connection, target)
@listens_for(Employee, 'before_update')
change_employee_path(mapper, connection, target)
有什么办法可以实现吗?
最佳答案
您需要使用 sqlalchemy.event.listen
函数并在声明您的 change_employee_path
函数后调用它:
listen(Employee, 'before_insert', change_employee_path)
listen(Employee, 'before_update', change_employee_path)
关于python - 如何将我的两个 @listens_for 事件回调重构为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092555/
我有两个在 before_insert 和 before_update 上触发的回调。执行的代码是完全相同的代码,我想做的是重构它,以便 @listens_for 执行相同的方法。 这是我的: @li
我需要一些帮助来自动化 sqlalchemy 中的一些任务。 当新用户在我的网站上注册时,我需要添加 5 名人员。 我想使用 sqlalchemy events因为如果我可以让它工作,它将在以后的其他
我是一名优秀的程序员,十分优秀!