Python Peewee Flask试图从布尔字段返回数据
我试图用以下代码返回Python Peewee Flask试图从布尔字段返回数据,python,python-3.x,flask,peewee,flask-peewee,Python,Python 3.x,Flask,Peewee,Flask Peewee,我试图用以下代码返回UserTable模型中用户的confirfiedboolean字段(以便稍后拒绝访问某些路由): 型号.py class UserTable(UserMixin, Model): email = CharField(unique=True) password = CharField() confirmed = BooleanField() class Meta: database = db @app.route('/isc
UserTable
模型中用户的confirfied
boolean字段(以便稍后拒绝访问某些路由):
型号.py
class UserTable(UserMixin, Model):
email = CharField(unique=True)
password = CharField()
confirmed = BooleanField()
class Meta:
database = db
@app.route('/isconfirmed/<email>')
def isconfirmed(email):
return models.UserTable.get(models.UserTable.email == email).confirmed
app.py
class UserTable(UserMixin, Model):
email = CharField(unique=True)
password = CharField()
confirmed = BooleanField()
class Meta:
database = db
@app.route('/isconfirmed/<email>')
def isconfirmed(email):
return models.UserTable.get(models.UserTable.email == email).confirmed
@app.route('/isconfirm/'))
def已确认(电子邮件):
返回models.UserTable.get(models.UserTable.email==电子邮件)。已确认
但当我尝试此操作时,我收到:TypeError:“bool”对象不可调用
我已尝试通过以下方式访问电子邮件
和密码
:
返回models.UserTable.get(models.UserTable.email==email)。email
等,它工作正常。我不明白为什么它不能从布尔域返回真或假
我正在使用Postgres作为我的数据库,如果这有任何关联/帮助的话
非常感谢您的帮助 下面是正在发生的事情
models.UserTable.get(models.UserTable.email==email)。确认
是合法查询,它返回布尔值-True
或False
现在,关于:
视图函数的返回值将自动转换为
您的响应对象。如果返回值是字符串,则为
转换为以字符串作为响应体的响应对象
200 OK错误代码和一个text/html mimetype。这是一个逻辑
应用于将返回值转换为响应对象,如下所示
如下:
- 如果返回正确类型的响应对象,它将直接 从视图返回
- 如果是字符串,则创建响应对象 使用该数据和默认参数
- 如果返回一个元组 元组中的项可以提供额外的信息。这样的元组必须 格式(响应、状态、标题),其中至少有一项 在元组中。状态值将覆盖状态代码和 标题可以是附加标题值的列表或字典
- 如果 所有这些都不起作用,Flask将假定返回值是有效的WSGI 应用程序并将其转换为响应对象
Flask
看到从视图返回的布尔值时,它试图将其视为WSGI应用程序实例,但失败了
如果要从视图返回的是True
或False
,则必须将其强制为字符串:
@app.route('/isconfirmed/<email>')
def isconfirmed(email):
return str(models.UserTable.get(models.UserTable.email == email).confirmed)
@app.route('/isconfirm/'))
def已确认(电子邮件):
返回str(models.UserTable.get(models.UserTable.email==email).已确认)
另请参见此处解决的相关问题: