SQLAlchemy 多对多
                        
                            时间:2021-07-01 10:21:17
                            帮助过:18人阅读
							                        
                     
                    
                    
                     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