SQLAlchemy 多对多
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
查看更多关于SQLAlchemy 多对多的详细内容...
阅读:26次