如果你使用 SQLAlchemy ORM,你可以使用 Python 的itertools.product 来简化赋值:
from itertools import product
# assuming teacher_obj, student_obj, and db is already created here
teacher_ids = [1, 2] # just as an example
student_ids = [1, 2, 3, 4, 5, 6] # ditto
for tid, sid in product(teacher_ids, student_ids):
teacher_obj.id = tid
student_obj.id = sid
db.session.commit()
如果您使用的是 SQLAlchemy Core,则可以使用连接的 execute 方法:
conn = engine.connect()
ins = users.insert()
conn.execute(
users.insert(),
[{"teacher_id": 1, "student_id": 2},
{"teacher_id": 1, "student_id": 3}])
当然,前提是您已经完成了必要的设置,例如:
from sqlalchemy import create_engine, Column, Integer, Table, MetaData
engine = create_engine('sqlite:///:memory:', echo=True)
metadata = MetaData()
users = Table('users', metadata,
Column('teacher_id', Integer),
Column('student_id', Integer))
metadata.create_all(engine)
conn = engine.connect()