Python 基于Flask的网站中出现奇怪的AttributeError
我正在开发一个基于Flask和SQLAlchemy的网站Python 基于Flask的网站中出现奇怪的AttributeError,python,postgresql,sqlalchemy,flask,Python,Postgresql,Sqlalchemy,Flask,我正在开发一个基于Flask和SQLAlchemy的网站 ss由sessionmaker在sqlalchemy.orm中创建 Anime、ActorQuote、AnimeComment是基于数据库结构的模型 ``` 当我使用try-except捕捉错误时,它会抛出另一个UnboundLocalError ``` 更奇怪的是,该网站仍然运作良好,什么也没有发生 这将按预期显示页面,没有错误 这将按预期显示页面,但有错误 你行吗 anime = ss.query(Anime).filter_by(a
ss
由sessionmaker在sqlalchemy.orm中创建anime = ss.query(Anime).filter_by(anime_name=anime_name).first()
如果未找到变量anime
,则该变量为None
(如您在数据库中所说为空),因此当尝试访问None
id
时,AttributeError
顺便说一句,我建议您使用扩展来处理所有数据库连接逻辑,并公开一些有用的函数,如“.first\u或\u 404”。
有了它,您的代码将成为
anime = Anime.query.filter_by(anime_name=anime_name).first_or_404()
你行吗
anime = ss.query(Anime).filter_by(anime_name=anime_name).first()
如果未找到变量anime
,则该变量为None
(如您在数据库中所说为空),因此当尝试访问None
id
时,AttributeError
顺便说一句,我建议您使用扩展来处理所有数据库连接逻辑,并公开一些有用的函数,如“.first\u或\u 404”。
有了它,您的代码将成为
anime = Anime.query.filter_by(anime_name=anime_name).first_or_404()
你行吗
anime = ss.query(Anime).filter_by(anime_name=anime_name).first()
如果未找到变量anime
,则该变量为None
(如您在数据库中所说为空),因此当尝试访问None
id
时,AttributeError
顺便说一句,我建议您使用扩展来处理所有数据库连接逻辑,并公开一些有用的函数,如“.first\u或\u 404”。
有了它,您的代码将成为
anime = Anime.query.filter_by(anime_name=anime_name).first_or_404()
你行吗
anime = ss.query(Anime).filter_by(anime_name=anime_name).first()
如果未找到变量anime
,则该变量为None
(如您在数据库中所说为空),因此当尝试访问None
id
时,AttributeError
顺便说一句,我建议您使用扩展来处理所有数据库连接逻辑,并公开一些有用的函数,如“.first\u或\u 404”。
有了它,您的代码将成为
anime = Anime.query.filter_by(anime_name=anime_name).first_or_404()
您可以在except块内显示代码吗?@alKid我添加了try except子句和Tracebck msg。您可以在except块内显示代码吗?@alKid我添加了try except子句和Tracebck msg。您可以在except块内显示代码吗?@alKid我添加了try except子句和Tracebck msg。您可以在except块内显示代码吗block?@alKid我添加了try-except子句和Tracebck-msg。很抱歉误导您,我的意思是actor\u-quotes表是空的,而不是整个数据库。我可以确认这不是由空表引起的,至少不只是:案例1:表动画注释和演员引号是空的,而且它可以正常工作()。案例2:与案例1几乎相同,结果显示错误,但页面正常。@kxxoling ok,但抛出该错误(NoneType没有属性)唯一的解释是
动画
对象为无
。当查询未找到任何记录时,就会发生这种情况。不管什么原因。:)是的,这是最奇怪的地方,因为页面总是成功呈现,所以动画对象可以是空的。我猜这些台词可能会表演两次,第一次一切正常,第二次一切都是空的。很抱歉误导你,我的意思是演员表是空的,而不是整个数据库。我可以确认这不是由空表引起的,至少不只是:案例1:表动画注释和演员引号是空的,而且它可以正常工作()。案例2:与案例1几乎相同,结果显示错误,但页面正常。@kxxoling ok,但抛出该错误(NoneType没有属性)唯一的解释是动画
对象为无
。当查询未找到任何记录时,就会发生这种情况。不管什么原因。:)是的,这是最奇怪的地方,因为页面总是成功呈现,所以动画对象可以是空的。我猜这些台词可能会表演两次,第一次一切正常,第二次一切都是空的。很抱歉误导你,我的意思是演员表是空的,而不是整个数据库。我可以确认这不是由空表引起的,至少不只是:案例1:表动画注释和演员引号是空的,而且它可以正常工作()。案例2:与案例1几乎相同,结果显示错误,但页面正常。@kxxoling ok,但抛出该错误(NoneType没有属性)唯一的解释是动画
对象为无
。当查询未找到任何记录时,就会发生这种情况。不管什么原因。:)是的,这是最奇怪的地方,因为页面总是成功呈现,所以动画对象可以是空的。我猜这些台词可能会表演两次,第一次一切正常,第二次一切都是空的。很抱歉误导你,我的意思是演员表是空的,而不是整个数据库。我可以确认这不是由空表引起的,至少不只是:案例1:表动画注释和演员引号是空的,而且它可以正常工作()。案例2:与案例1几乎相同,结果显示错误,但页面正常。@kxxoling ok,但抛出该错误(NoneType没有属性)唯一的解释是动画
对象为无
。当查询未找到任何记录时,就会发生这种情况。不管什么原因。:)是的,这是最奇怪的地方,因为页面总是成功呈现,所以动画对象可以是空的。我猜这些台词可能表演了两次,第一次一切正常,第二次一切都是空的。