创建数据库的时候,在构建一对一,一对多,多对多时报错。下面用一对多举例。
在设置表名的那条语句后面加了 “,”
# 图片表
class Origin(db.Model):
__tablename__ = 'origin', #*这个地方多了逗号*
id = db.Column(db.Integer, primary_key=True) # 主键
url = db.Column(db.String(64), nullable=False) # nullable 能否为空
paintings = db.relationship("Painting", backref="origin") # 分级图片关联【调用:painting.origin.url
# 分级图片
class Painting(db.Model):
__tablename__ = 'painting',
id = db.Column(db.Integer, primary_key=True) # 主键
url = db.Column(db.String(64), nullable=False) # nullable 能否为空
origin_id = db.Column(db.Integer, db.ForeignKey("origin.id")) # 所属原始图片【一对多中多的一方放外键
解决办法:删了","即可
表名与调用时表名不相符
# 图片表
class Origin(db.Model):
__tablename__ = 'originaaa' #*设置了表名*
id = db.Column(db.Integer, primary_key=True) # 主键
url = db.Column(db.String(64), nullable=False) # nullable 能否为空
paintings = db.relationship("Painting", backref="origin") # 分级图片关联【调用:painting.origin.url
# 分级图片
class Painting(db.Model):
__tablename__ = 'painting',
id = db.Column(db.Integer, primary_key=True) # 主键
url = db.Column(db.String(64), nullable=False) # nullable 能否为空
origin_id = db.Column(db.Integer, db.ForeignKey("origin.id")) # 所属原始图片【一对多中多的一方放外键
#*这个地方调用的时候仍然调用了默认表名*
解决办法:
默认表名是小写字母,驼峰法命名的表名会有下划线分割。
class User(db.Model) 中,默认表名是user
class StudentUser(db.Moedl) 中,默认表名是student_user