小编jca*_*ero的帖子

实例化对象会自动添加到 SQLAlchemy 会话。为什么?

根据我对 SQLAlchemy 的理解,为了向会话添加模型,我需要调用session.add(obj). 但是,出于某种原因,在我的代码中,SQLAlchemy 似乎会自动执行此操作。

它为什么这样做,我该如何阻止它?我是否以正确的方式接近会议?

例子

>>> from database import Session as db
>>> import clients
>>> from instances import Instance
>>> from uuid import uuid4
>>> len(db.query(Instance).all())
>>> 0 # Note, no instances in database/session
>>> i = Instance(str(uuid4()), clients.get_by_code('AAA001'), [str(uuid4())])
>>> len(db.query(Instance).all())
>>> 1 # Why?? I never called db.add(i)!
Run Code Online (Sandbox Code Playgroud)

数据库.py

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session
from sqlalchemy.ext.declarative import declarative_base

import config

Base = declarative_base()

class Database():

    def …
Run Code Online (Sandbox Code Playgroud)

python session sqlalchemy

6
推荐指数
1
解决办法
1824
查看次数

标签 统计

python ×1

session ×1

sqlalchemy ×1