Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Peewee Flask试图从布尔字段返回数据_Python_Python 3.x_Flask_Peewee_Flask Peewee - Fatal编程技术网

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).已确认)
另请参见此处解决的相关问题:


啊!我只是在学习烧瓶,对这种理论非常模糊。我以前曾尝试在if语句中使用查询并手动返回True或False—不理解我不能返回布尔值—这让我很困惑。我一定会仔细阅读这部分文档!