当前位置: 首页 > news >正文

sqlalchemy——@listens_for

  • 问:sqlalchemy如何实现:表中指定数据更新时,其time字段自动更新?
  • 答:使用listens_for 装饰器来注册事件监听器,确保在项目数据更新时触发相应的处理逻辑。

示例代码如下:

# coding: utf-8
import datetimefrom sqlalchemy.event import listens_for
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, StringBase = declarative_base()
'''项目表
'''class ProjectTable(Base):__tablename__ = 'project'# 项目idid = Column(String(32), primary_key=True)# 项目名称name = Column(String(255))# 项目说明explain = Column(String(255))# 项目类型type = Column(String(20))# 更新时间time = Column(String(20), default=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))def __repr__(self):table = "project(id={}, name={}, explain={},time={},type={})"return table.format(self.id, self.name, self.explain, self.time, self.type)# 将查询结果转换为Jsondef to_json(self):_dict = self.__dict__if "_sa_instance_state" in _dict:del _dict["_sa_instance_state"]return _dict
# 添加监听,当数据更新时,自动更新time字段
@listens_for(ProjectTable, 'before_update')
def before_update_listener(mapper, connection, target):target.time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
http://www.lryc.cn/news/293290.html

相关文章:

  • MySQL进阶之锁(全局锁以及备份报错解决)
  • C#实现windows系统重启、关机
  • JS中Set和Map用法详解
  • 使用nginx对视频、音频、图片等静态资源网址,加token签权
  • [每周一更]-(第86期):NLP-实战操作-文本分类
  • 【Springcloud篇】学习笔记五(十章):Gateway网关
  • Linux开发工具
  • C++ 动态规划 线性DP 最长共同子序列
  • 【备战蓝桥杯】——循环结构终篇
  • 为什么说Python语法简单?
  • 【HarmonyOS应用开发】ArkUI 开发框架-进阶篇-管理组件状态(九)
  • EF Core入门例子(以SqLite为数据库)
  • centos7 安装nginx
  • 【Linux Day14 UDP网络通讯】
  • 指针的深入了解6
  • PHP之PDO_MYSQL扩展安装步骤
  • 【pytorch】nn.linear 中为什么是y=xA^T+b
  • vite打包原理
  • 导出pdf 加密、加水印、加页脚
  • Flutter 仿抖音 TikTok 上下滑动 播放视频
  • 计算机网络——网络层(2)
  • 01-16Maven-SpringBoot入门
  • 微信小程序(二十七)列表渲染改变量名
  • k8s之安装部署及kuboard发布应用
  • JProfiler for Mac:提升性能和诊断问题的终极工具
  • 力扣202-快乐数
  • 牛客寒假训练营H题
  • ubuntu22.04@laptop 常用基础环境安装
  • Linux第41步_移植ST公司uboot的第2步_修改网络驱动_USB OTG设备树_LCD驱动_以及编译和烧写测试
  • 瑞芯微1808模型转换(onnx到rknn)环境配置过程