python boolean_Flask SQLAlchemy SQLITE boolean字段始终返回Fals

同一代码不能在OSX上用Python 2.7.10、SQLAlchemy==1.0.9和Flask-SQLAlchemy==2.1、Flask==0.10.1复制:#!/usr/bin/env python

# encoding: utf-8

from flask import Flask

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:tmp/test.db'

db = SQLAlchemy(app)

class User(db.Model):

id = db.Column(db.Integer, primary_key=True)

username = db.Column(db.String(80), unique=True)

email = db.Column(db.String(120), unique=True)

can_view_records = db.Column(db.Boolean, default=False, nullable=False)

def __init__(self, username, email, can_view_records):

self.username = username

self.email = email

self.can_view_records = can_view_records

def __repr__(self):

return '' % self.username

生成数据库:>>>from app import db, User

>>>db.create_all()

>>>admin = User('admin', 'admin@example.com', True)

>>>guest = User('guest', 'guest@example.com', False)

>>>db.session.add(admin)

>>>db.session.add(guest)

>>>db.session.commit()

sqlite表如下所示:sqlite> select * from user;

1|admin|admin@example.com|1

2|guest|guest@example.com|0

所有查询看起来都正常:>>>User.query.get(1).can_view_records

>>>True

>>>User.query.get(2).can_view_records

>>>False

>>>User.query.filter_by(can_view_records=True).first().can_view_records

>>>True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值