flask中MySQL外键_Flask_Appbuilder使用过程中遇到的坑-关于数据库外键

本文介绍了在使用Flask_Appbuilder时遇到的关于MySQL外键的错误,即sqlalchemy.exc.NoForeignKeysError。问题源于数据库表名在ForeignKey设置中的不正确引用。解决方案包括明确表名或直接使用类名。通过修改`ForeignKey`的参数,例如`ForeignKey('providers.id')`,可以避免此类错误。
摘要由CSDN通过智能技术生成

摘要这一篇文章是关于flask_appbuilder的一个小坑吧,关于数据库外键的设置问题,记录在这里。

文章目录(Table of Contents)

问题来源

最近在使用flask_appbuilder的时候,在使用数据库外键的时候遇到了一些报错:

sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship version_patch.patchcode - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.

出现这个问题的原因是因为数据库设置中ForeignKey中表名设置出现了问题,我们看一下下面的解决方法。

解决思路

首先看一下原因:

原来db.ForeignKey中的‘表名.字段名'中的表名是数据库上的表名,我们可以使tablename = 'VERSION_PATCH'来指定表名字。

我们来看一个例子:

# 服务商分组表

class Providers(Model):

id = Column(Integer, primary_key=True)

name = Column(String(50), unique=True, nullable=False)

def __repr__(

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值