Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 炼金术:可以';t从用户数据库查询_Python_Flask_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python 炼金术:可以';t从用户数据库查询

Python 炼金术:可以';t从用户数据库查询,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我正在尝试在我的Flask应用程序上创建一个端点,该端点将显示所有用户信息(我知道这是不安全的,用于调试) 我已使用以下代码创建了路线: @main_bp.route('/users', methods=['GET']) @login_required def userInfo(): from .models import User q = User.query.all() return str(q) 这将返回[],而我知道数据库中有用户。此外,在选择单个记录时,我可以

我正在尝试在我的Flask应用程序上创建一个端点,该端点将显示所有用户信息(我知道这是不安全的,用于调试)

我已使用以下代码创建了路线:

@main_bp.route('/users', methods=['GET'])
@login_required
def userInfo():
    from .models import User
    q = User.query.all()
    return str(q)
这将返回
[]
,而我知道数据库中有用户。此外,在选择单个记录时,我可以按如下方式获取用户名:

def userInfo():
    from .models import User
    q = User.query.first()
    return str(q.username)

我正在使用SQLite3,但计划很快转移到PostgreSQL,因此如果问题出在SQLite内部,理想的解决方案是只连接到PG数据库。

这肯定是一个奇怪的错误。尝试通过q循环并添加名称以进行双重检查,如下所示:

@main_bp.route('/users', methods=['GET'])
@login_required
def userInfo():
    from .models import User
    users = User.query.all()
    result = ''
    for u in users:
        result += str(u.username)

    return result

看看有没有什么进展。

你的代码对我有用。我在sqlalchemy中也有一个“用户”,如果我复制了你的代码,我只需更改应用程序的名称,它就可以工作:

@app.route('/users', methods=['GET'])
@login_required
def userInfo():
  from .models import User
  q = User.query.all()
  return str(q)

如果您确定数据库中有用户,可能没有执行此代码?奇怪的事情:冗余路由?

你怎么看它返回的是
[]
?@thebjorn在第一个代码片段中,我直接返回响应的
str()
。很可能我只是没有以正确的方式访问数据。当然,但是您正在查看呈现的html吗?(将包含
“[]”
,其中尖括号将被html吞没…)。
str([v.username for v in q])
呢?@thebjorn不,我正在查看直接响应,但我可以通过您的第二个命令访问它。但这意味着我必须手动映射所有要显示的字段,我更希望它动态返回所有字段。不,它显示已返回一个
用户
对象列表,但是这些对象没有一个
\u str\u
\u repr\u
使它们在您看到它们的地方可见。