tru mysql_Flask SqlAlchemy MySql Boolean类型始终返回Tru

这篇博客讨论了一个Flask应用使用SqlAlchemy连接到MySQL数据库时遇到的问题,即从数据库查询出来的布尔位字段总是返回True,即使在数据库中它们被设置为False。博主展示了数据表结构和查询代码,并寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个使用SqlAlchemy连接到MySql数据库的Flask应用程序。该表有3个布尔(位)字段,如下所示:+------------------------+---------------+------+-----+-------------------+----------------+

| Field | Type | Null | Key | Default |

Extra |

+------------------------+---------------+------+-----+-------------------+----------------+

| ID | int(11) | NO | PRI | NULL |

auto_increment |

| clientID | int(11) | YES | | NULL |

|

| accountType | varchar(2) | YES | | NULL |

|

| systemType | varchar(1) | YES | | NULL |

|

| clientName | varchar(400) | YES | | NULL |

|

| clientURL | varchar(5000) | YES | | NULL |

|

| clientTelephone | varchar(300) | YES | | NULL |

|

| clientAddressLine1 | varchar(500) | YES | | NULL |

|

| clientAddressLine2 | varchar(500) | YES | | NULL |

|

| clientAddressLine3 | varchar(500) | YES | | NULL |

|

| clientPostcode | varchar(50) | YES | | NULL |

|

| clientCountry | varchar(100) | YES | | NULL |

|

| accessBenchmarking | bit(1) | YES | | NULL |

|

| accessTechnicalSupport | bit(1) | YES | | NULL |

|

| accountLive | bit(1) | YES | | NULL |

|

| clientTown | varchar(100) | YES | | NULL |

|

| clientCounty | varchar(100) | YES | | NULL |

|

| dateTimeStamp | timestamp | YES | | CURRENT_TIMESTAMP |

|

+------------------------+---------------+------+-----+-------------------+----------------+

每个位字段的值都设置为0。在

SqlAlchemy模型是:

^{pr2}$

检索值的代码如下:#check for valid and live user account

CheckAccount = ClientAccounts.query.filter_by(

clientID=accountNo,

).first()

if not CheckAccount is None:

accessBenchmarking = CheckAccount.accessBenchmarking

accessTechnicalSupport = CheckAccount.accessTechnicalSupport

accountLive = CheckAccount.accountLive

print 'db return ...'

print accessBenchmarking

print accessTechnicalSupport

print accountLive

这些值总是返回为True,即使它们在DB中设置为False。返回的价值可以在这里看到:INFO:sqlalchemy.engine.base.Engine:('11111111', 1)

db return ...

True

True

True

有人知道是什么引起的吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值