栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

跨文件的SQLAlchemy类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

跨文件的SQLAlchemy类

解决您的问题的最简单方法是

base
取出导入的模块
A
B
然后
C
;中断循环导入。

base.py

from sqlalchemy.ext.declarative import declarative_basebase = declarative_base()

py

from sqlalchemy import *from base import basefrom sqlalchemy.orm import relationshipclass A(base):    __tablename__ = "A"    id  = Column(Integer, primary_key=True)    Bs  = relationship("B", backref="A.id")    Cs  = relationship("C", backref="A.id")

b.py

from sqlalchemy import *from base import baseclass B(base):    __tablename__ = "B"    id    = Column(Integer, primary_key=True)    A_id  = Column(Integer, ForeignKey("A.id"))

py

from sqlalchemy import *from base import baseclass C(base):    __tablename__ = "C"        id    = Column(Integer, primary_key=True)    A_id  = Column(Integer, ForeignKey("A.id"))

main.py

from sqlalchemy import create_enginefrom sqlalchemy.orm import relationship, backref, sessionmakerimport baseimport aimport bimport cengine = create_engine("sqlite:///:memory:")base.base.metadata.create_all(engine, checkfirst=True)Session = sessionmaker(bind=engine)session = Session()a1 = a.A()b1 = b.B()b2 = b.B()c1 = c.C()c2 = c.C()a1.Bs.append(b1)a1.Bs.append(b2)    a1.Cs.append(c1)a1.Cs.append(c2)    session.add(a1)session.commit()

适用于我的机器:

$ python main.py ; echo $?0


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号