zoukankan      html  css  js  c++  java
  • SQLAlchemy外键的使用

    orm可以将数据库存储的数据封装成对象,同时,如果封装的好的话,所有的数据库操作都可以封装到对象中。这样的代码在组织结构上会非常的清晰,并且相对与使用sql语句在sql注入方面会极具降低。

    SQLAlchemy中的映射关系有四种,分别是一对多,多对一,一对一,多对多

    实现这种映射关系只需要外键(ForeignKey),和relationship

    一对多:

    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, CHAR
    from sqlalchemy import ForeignKey
    from sqlalchemy.orm import relationship, backref
    
    Base = declarative_base()
    
    class Parent(Base):
        __table__ = "parent"
        id = Column(Integer, Primary_key=True)
        name = Column(CHAR(50))
        child = relationship("child", backref="parent")
    
    class Child(Base):
        __table__ = "child"
        id = Column(Integer, Primary_key=True)
        name = Column(CHAR(50))
        parent_id = Column(Integer,ForeignKey('parent.id'))
    

    多对一:(建议)

    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, CHAR
    from sqlalchemy import ForeignKey
    from sqlalchemy.orm import relationship, backref
    
    Base = declarative_base()
    
    class Parent(Base):
        __table__ = "parent"
        id = Column(Integer, Primary_key=True)
        name = Column(CHAR(50))
    
    class Child(Base):
        __table__ = "child"
        id = Column(Integer, Primary_key=True)
        name = Column(CHAR(50))
        parent_id = Column(Integer,ForeignKey('parent.id'))
        parent = relationship("parent", backref="child")
    

     

  • 相关阅读:
    loadrunner上传文件到网盘
    robotframework + appium 获取android toast
    jmeter 签名MD5生成
    python appium 封装获取toast方法
    java appium客户端 6.1.0android长按及滑动变更
    父类与子类 构造函数 变量 加载顺序
    检测安卓手机联网方式
    context menu与submenu区别
    div 居中
    ndk的一些概念
  • 原文地址:https://www.cnblogs.com/caicairui/p/7821601.html
Copyright © 2011-2022 走看看