小编idw*_*ker的帖子

使用sqlalchemy的postgresql JSON类型列表

我使用sqlalchemy金字塔,pyramid_tm和postgresql来测试这个.

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()


class MyList(Base):
    id = Column(Integer, primary_key=True)
    lst = Column(JSON)
Run Code Online (Sandbox Code Playgroud)

我正在使用postgresql 9.3+并使用JSON类型.当我这样做

mylst = MyList(lst=[])
Run Code Online (Sandbox Code Playgroud)

我可以看到在数据库上也创建了空[]列表,并且

def view(request):
    mylst = DBSession.query(MyList).get(1)
    mylst.lst.append('45')
    print(DBSession.is_active, DBSession.is_modified(mylst))
Run Code Online (Sandbox Code Playgroud)

我可以在数据库中看到['45'],并打印返回

True, True
Run Code Online (Sandbox Code Playgroud)

在下一个请求上继续[编辑](上面已经提交)

def view(request):
    mylst = DBSession.query(MyList).get(1)
    mylst.lst.append('65')
    print(DBSession.is_active, DBSession.is_modified(mylst))
Run Code Online (Sandbox Code Playgroud)

db不会更新,它仍然是['45']并且打印返回

True, False
Run Code Online (Sandbox Code Playgroud)

我做错了什么或这是一个错误?

python postgresql sqlalchemy pyramid

8
推荐指数
1
解决办法
2325
查看次数

标签 统计

postgresql ×1

pyramid ×1

python ×1

sqlalchemy ×1