当前位置:Gxlcms > 数据库问题 > SQLAlchemy 多对多

SQLAlchemy 多对多

时间:2021-07-01 10:21:17 帮助过:26人阅读

sqlalchemy import Integer, Column, String, ForeignKey from sqlalchemy.orm import declarative_base, relationship, backref, sessionmaker from sqlalchemy import create_engine Base = declarative_base() class Department(Base): __tablename__ = department id = Column(Integer, primary_key=True) name = Column(String) employees = relationship(Employee, secondary=department_employee) class Employee(Base): __tablename__ = employee id = Column(Integer, primary_key=True) name = Column(String) departments = relationship(Department, secondary=department_employee) class DepartmentEmployee(Base): __tablename__ = department_employee department_id = Column(Integer, ForeignKey(department.id), primary_key=True) employee_id = Column(Integer, ForeignKey(employee.id), primary_key=True) engine = create_engine("sqlite:///") session = sessionmaker() session.configure(bind=engine) Base.metadata.create_all(engine) s = session() john = Employee(name=Jhon) s.add(john) it_department = Department(name=IT) it_department.employees.append(john) s.add(it_department) s.commit() johnDB = s.query(Employee).filter(Employee.name == Jhon).one() print(johnDB.name) print(johnDB.departments[0].name)

 

SQLAlchemy 多对多

标签:column   comm   figure   base   maker   metadata   ack   second   temp   

人气教程排行