python - Flask-SQLAlchemy:未定义名称“func”
问题描述
我正在使用 flask-sqlalchemy 从 db 中查询聚合值。
这是我的课:
class SblClientPosition(db.Model):
record_date = db.Column(db.String(8), primary_key=True, index=True)
client_id = db.Column(db.String(10), primary_key=True, index=True)
stock_code = db.Column(db.String(8), primary_key=True, index=True)
t1_qty = db.Column(db.Integer, default=0)
t2_qty = db.Column(db.Integer, default=0)
我想在 SQL 中查询的是:
select stock_code, sum(t1_qty) as 't1_total', sum(t2_qty) as 't2_total'
from SblClientPosition
where record_date = '20211031'
group by stock_code
这是我的查询:
pool = SblClientPosition.query(SblClientPosition.stock_code, func.sum(SblClientPosition.t1_qty).lable('t1_total'), func.sum(SblClientPosition.t2_qty).lable('t2_total')).filter_by(record_date='20211031').group_by(SblClientPosition.stock_code).all()
这是我得到的错误:
Traceback (most recent call last):
File "C:\Python3\Lib\site-packages\flask\app.py", line 2091, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Python3\Lib\site-packages\flask\app.py", line 2076, in wsgi_app
response = self.handle_exception(e)
File "C:\Python3\Lib\site-packages\flask\app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "C:\Python3\Lib\site-packages\flask\app.py", line 1518, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Python3\Lib\site-packages\flask\app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Python3\Lib\site-packages\flask\app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "C:\Users\Administrator\Desktop\sbl_distributer\sbl_distributer_main.py", line 134
pool = SblClientPosition.query(SblClientPosition.stock_code, func.sum(SblClientPosition.t1_qty).lable('t1_total'), func.sum(SblClientPosition.t2_qty).lable('t2_total')).filter_by(record_date='20211031').group_by(SblClientPosition.stock_code).all()
NameError: name 'func' is not defined
所以我希望知道哪里错了?
解决方案
看起来您需要从 SQLAlchemy 导入 func:
from sqlalchemy import func
推荐阅读
- python - 等待使用 Python (iframe) 在 Selenium 中可点击
- java - 正则表达式更改电话号码的形式
- javascript - 从另一个组件重新渲染组件的一部分
- c# - 困惑:抽象类属性
- google-chrome - 流行浏览器中的 Webcryto getRandomValues() 实现
- javascript - 当用户单击提交时,我的 AJAX 没有发布或响应
- android - 如何一键暂停/播放多个 MediaPlayer 对象?
- python - 如何在顺序蜘蛛之间传递数据
- r - ifelse 语句计算值是否大于其先前的值
- slack - Slack WebApi、Bot 用户与客户端凭据流?