正确生成浮点型的方法,解决sqlachemy Float浮点型的坑,生成float类型时,长度和精度均为0,导致查询不到结果!
Posted 听风。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正确生成浮点型的方法,解决sqlachemy Float浮点型的坑,生成float类型时,长度和精度均为0,导致查询不到结果!相关的知识,希望对你有一定的参考价值。
问题描述
在使用flask_sqlachemy时,给price字段选择了Float类型,数据库用的mysql,生成数据库表后,发现
from sqlalchemy import Float,Column price = Column(Float,default=0.00)
虽然能存储float类型,结果如下
但是查询时有问题!!!
根本查不到结果
错误示例,还有如下几种
错误示范
from sqlalchemy import Column,Float from sqlalchemy.dialects.mysql import FLOAT class TestTable(db.Model): __tablename__ = \'my_test_table\' float_1 = Column(FLOAT(length=10, precision=2)) float_2 = Column(Float(10,2)) float_3 = Column(Float(as_decimal=True)) float_4 = Column(Float(precision=10, scale=2),default=0.00)
上面方法无论哪种生成的结果,依然长度为0.无法查询到
解决办法
from sqlalchemy.dialects.mysql import FLOAT float_5 = Column(FLOAT(precision=10, scale=2))
以上是关于正确生成浮点型的方法,解决sqlachemy Float浮点型的坑,生成float类型时,长度和精度均为0,导致查询不到结果!的主要内容,如果未能解决你的问题,请参考以下文章
DJango - Sqlachemy - 如何生成已有数据库的models
如何让 sqlachemy 看到 json_each 或 jsonb_each 中的隐式横向连接?
Python——flask-sqlalchemy 自动生成符合Sqlachemy的Model:sqlautocode/sqlacodegen使用方式