小编lar*_*ray的帖子

在Flask-sqlalchemy和Postgresql中使用JSON Type

背景: 我正在构建一个Flask应用程序,我已将数据存储到postgresql数据库和JSON列类型中.

任务: 在我的视图函数中,我想从JSON列的{Key:Value}订购数据库查询

完成:我已成功通过使用以下命令在psql命令行执行此查询,例如:

select*from target where cast(product - >>'profit'as float)> 100 order by cast(product - >>'salesrank'as integer)asc;

问题:我无法在我的代码中复制此查询(请参阅下面的额外信息部分中的模型代码)

from app import app, db
from models import Target 

data = Target.query.order_by(Target.product['salesrank'])
Run Code Online (Sandbox Code Playgroud)

收到错误 - ProgrammingError:(ProgrammingError)无法识别类型json的排序运算符LINE 2:FROM target ORDER BY target.product - >'salesrank'^ HINT:使用显式排序运算符或修改查询.'SELECT target.id AS target_id,target.store AS target_store,target.product AS target_product,target.asin AS target_asin,target.date AS target_date \nFROM target ORDER BY target.product - >%(product_1)s \n LIMIT% (param_1)s'{'product_1':'salesrank','param_1':1}

额外信息 我的目标模型设置如下:

#models.py
from app import db
from sqlalchemy.dialects.postgresql import JSON
import datetime …
Run Code Online (Sandbox Code Playgroud)

python postgresql json flask flask-sqlalchemy

26
推荐指数
1
解决办法
2万
查看次数

为什么 Serverless 在尝试打包或部署时会产生 Invalid Cross-device link 错误?

运行任一命令时: sudo serverless package or sudo serverless deploy

我得到以下回溯:

错误:错误:异常:回溯(最近一次调用):文件“/var/lang/lib/python3.6/shutil.py”,第 550 行,移动 os.rename(src, real_dst) OSError:[Errno 18 ] 无效的跨设备链接:'/tmp/pip-target-wqc5grcw/lib/python/setuptools' -> '/var/task/setuptools'

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“/var/lang/lib/python3.6/site-packages/pip/_internal/cli/base_command.py”,第 228 行,在 _main status = self.run(options, args ) 文件“/var/lang/lib/python3.6/site-packages/pip/_internal/cli/req_command.py”,第 182 行,在包装器 return func(self, options, args) 文件“/var/lang/ lib/python3.6/site-packages/pip/_internal/commands/install.py”,第 456 行,在运行 options.target_dir、target_temp_dir、options.upgrade 文件“/var/lang/lib/python3.6/site- package/pip/_internal/commands/install.py”,第 514 行,在 _handle_target_dir target_item_dir 文件“/var/lang/lib/python3.6/shutil.py”,第 561 行,在 move symlinks=True 中)文件“/var /lang/lib/python3.6/shutil.py”,第 321 行,在 copytree os.makedirs(dst) 文件“/var/lang/lib/python3.6/os.py”,第 220 行,在 makedirs mkdir(名称,模式)PermissionError:[Errno 13] 权限被拒绝:'/var/task/setuptools'

我创建了几个不同的项目,它们在本地工作,但在尝试部署或打包时,它们从未超出这个无效的交叉链接设备错误。

我有哪些选择?

python aws-lambda serverless-framework serverless

7
推荐指数
2
解决办法
1085
查看次数