python - 使用子查询对 SQLAlchemy (flask-sqlalchemy) 进行 SQL 查询
问题描述
我有这个 SQL 查询我想转换为 SLQAlchemy (flask-sqlalchemy) 查询使用分页
SQL查询
queryPostgres = db.text("""
SELECT *, COUNT(*) OVER () as RowCount
FROM (
SELECT * ,
( 3958.75 *
acos(sin(:lat1 / 57.2958) * sin( cast(latitude as double precision) / 57.2958) +
cos(:lat1 / 57.2958) * cos( cast(latitude as double precision) / 57.2958) *
cos( cast(longitude as double precision) / 57.2958 - :lon1/57.2958)))
as distanceInMiles
FROM "job" ) zc
WHERE zc.distanceInMiles < :dst
ORDER BY zc.distanceInMiles
LIMIT :per_page
OFFSET :offset
""")
以 SQLALchemy 为
@classmethod
def getJobsWithinXMiles2(cls, lat1: str, lon1: str, dst: str):
return cls.query.filter(
(3958.75 *
acos(sin(lat1 / 57.2958) * sin(latitude / 57.2958) +
cos(lat1 / 57.2958) * cos(latitude / 57.2958) *
cos(longitude / 57.2958 - lon1/57.2958))) as distanceInMiles) \
.where(distanceInMiles < dst) \
.order_by(distanceInMiles) \
.paginate(page=_page, per_page=_per_page)
但我在 SQLAlchemy 中遇到错误
这是澄清的模式
class Job(db.Model):
__tablename__ = "job"
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(80), nullable=False)
city = db.Column(db.String(250), nullable=False)
state = db.Column(db.String(10), nullable=False)
zipCode = db.Column(db.String(10), nullable=False)
latitude = db.Column(db.String(10), nullable=False)
longitude = db.Column(db.String(10), nullable=False)
description = db.Column(db.String(200), nullable=False)
narrative = db.Column(db.String(250), nullable=False)
companyLogo = db.Column(db.String(250), nullable=False)
companyName = db.Column(db.String(250), nullable=False)
companyURL = db.Column(db.String(100), nullable=False)
time_created = db.Column(db.DateTime, nullable=False)
但我无法让它发挥作用。有人可以帮助将此 sql 查询转换为 SQLAlchemy 吗?
解决方案
推荐阅读
- php - 如何将两个值从 html 导入我的 SQL 表
- flask - 前端通过 request.stream 将大容量数据上传到 Flask 服务器
- javascript - 无法从 http post 方法获取 req.body 属性
- laravel - 如何在laravel中搜索hasMany关系
- javascript - 使用 JSON 中的字符串和整数创建数组
- google-app-maker - 如何预填充 SQL 表的条目,以便第一次用户获取示例数据?
- usb - 我需要一些帮助来了解 USB 游戏控制器(HID 设备)
- android - Android上的OpenGL绘图结合Unity通过帧缓冲区传输纹理无法工作
- c - C 调用约定/参数传递
- unity3d - Unity 2D A* Pathfinding: Gameobject of Grids 位置问题