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")
    

     

  • 相关阅读:
    常见时间复杂度及对应关系
    【转载】Locust实现集合点
    curl 查看接口的网络分段响应时间
    python-字符串操作分类小结
    Jquery--1--选择器分类
    【转】linux shell编程实例总结
    随笔分类整理
    linux备忘录-日志档案
    linux备忘录-系统服务daemon
    linux备忘录-程序管理与SELinux
  • 原文地址:https://www.cnblogs.com/caicairui/p/7821601.html
Copyright © 2011-2022 走看看