HELLO WORLD _

欢迎来到甘蔗知行阁,这里专注技术分享,与你一同知行合一!

# Initialize the craftsman space
class GanZhe_ZhixingPavilion:
    def __init__(self):
        self.author = "GanZhe"
        self.mission = "Learn together, grow together."

    def status(self):
        return "Coding in progress..."

甘蔗的最新文章

> 2026-03-25 20:52:43

SQLAlchemy Autoflush隐蔽Bug分析

本文深入分析了SQLAlchemy中由于Autoflush机制导致的隐蔽Bug问题。当开发者错误地将字典赋值给ORM对象列属性后,后续触发Lazy Loading时会自动执行Flush操作,而PyMySQL驱动不支持将字典类型作为普通列参数,导致TypeError。问题根源在于对SQLAlchemy会话管理机制的不了解,包括脏数据跟踪、自动刷新等设计原理。解决方案包括使用临时属性存储非持久化数据、转字典后修改、临时关闭Autoflush或确保类型匹配。该案例警示开发者需要深入理解ORM框架底层机制,区分临时数据与持久化数据的处理方式。