相关疑难解决方法(0)

Flask-SQLAlchemy中的db.Model与db.Table

瓶-SQLAlchemy的文档说,许多一对多查找表不应该继承db.Model而是被写成db.Tables。从文档:

如果要使用多对多关系,则需要定义用于该关系的帮助程序表。对于此辅助表,强烈建议不要使用模型,而是使用实际表

为什么?将所有内容制作为模型有哪些弊端?我认为采用统一的方式在数据库中声明表看起来更干净。同样,有可能以后某个时间,开发人员将需要直接访问那些映射记录,而不是通过需要模型的关系来访问。

python sqlalchemy flask-sqlalchemy

6
推荐指数
1
解决办法
4776
查看次数

使用SQLAlchemy在关联表中插入数据时出现IntegrityError

我正在尝试在此关联表中插入角色数据:

class Association(db.Model):
    __tablename__ = 'associations'
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True)
    team_id = db.Column(db.Integer, db.ForeignKey('teams.id'), primary_key=True)
    role = db.Column(db.String)
    user = db.relationship("User", back_populates="teams")
    team = db.relationship("Team", back_populates="users")
Run Code Online (Sandbox Code Playgroud)

它链接到另外两个表:

class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String)
    username = db.Column(db.String, nullable=False, unique=True, index=True)
    password_hash = db.Column(db.String)
    teams = db.relationship("Association", back_populates="user")

class Team(db.Model):
    __tablename__ = 'teams'
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String)
    player = db.Column(db.String)
    users = db.relationship("Association", back_populates="team")
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在关联表中插入角色时:

t = Team.query.filter_by(id=team_name1_id).first()
a …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

1
推荐指数
1
解决办法
855
查看次数

标签 统计

python ×2

sqlalchemy ×2

flask-sqlalchemy ×1