Python 使用flask时无法执行原始sql

Python 使用flask时无法执行原始sql,python,flask,flask-sqlalchemy,Python,Flask,Flask Sqlalchemy,因此,我想在我的flask应用程序中专门运行以下sql代码: SELECT *, (upvotes - downvotes) * age / importance * -1 AS hotness FROM 'post' ORDER BY hotness DESC LIMIT 50 为此,我使用了炼金术,如下所示: self.hotness = db.engine.execute(text("SELECT *, (upvotes - downvotes) * age / importan

因此,我想在我的flask应用程序中专门运行以下sql代码:

SELECT *, (upvotes - downvotes) * age / importance * -1 AS hotness FROM 'post' ORDER BY hotness DESC LIMIT 50
为此,我使用了炼金术,如下所示:

    self.hotness = db.engine.execute(text("SELECT *, (upvotes - downvotes) * age / importance * -1 AS hotness FROM 'post' ORDER BY hotness DESC LIMIT 50").execution_options(autocommit=True))
    return self.hotness
正如关于问题的建议

问题是,
self.hotness
变量总是显示为
None
,即使sql代码中引用的所有其他变量都不是
None
,而是数字

我猜问题是由于实际的sql代码没有提交到这里使用的表中,即
post


如何使用flask sqlalchemy正确提交从原始sql生成的数据?

当您说所有其他变量都有一个值时,您的意思是对于任何给定的行,它们都有一个值?我的猜测是,对于一行,其中至少有一个可能是
NULL
,这导致
None
,并且由于您按
热度进行排序,因此
None
会冒泡到顶部。您也不必提交select语句。提交用于插入、更新或删除。我已经检查并看到输入到等式中的每个值都是整数(应该是整数)。您提到提交是用于更新的,所以假设我的热度值为
None
,我可以使用update命令使用上述等式将该值更新为整数吗?我认为使用SELECT关键字是我的错误。是的,你可以使用update命令。请记住,Python的
None
的SQL等价物是
NULL
,因此在WHERE子句中,您需要类似于
WHERE hotness is NULL