我正在使用Python3.6编写一个带有get方法的FlaskAPI,它将创建一个与GCP postgreSQL的连接,并执行一个简单的select查询。这里我希望我的函数应该返回postgreSQL查询的结果(行)。下面是我的代码:
from sqlalchemy.engine import url
import pg8000
import logging
import os
import json
from flask import Flask, Response, request, render_template
import sqlalchemy
app = Flask(__name__)
logger = logging.getLogger()
# Environment specific parameter values to establish DB connection with postgreSQL
db_user = os.environ.get("DB_USER")
db_pass = os.environ.get("DB_PASS")
db_name = os.environ.get("DB_NAME")
cloud_sql_connection_name = os.environ.get("CLOUD_SQL_CONNECTION_NAME")
# Creating a connection with postgresql DB model.
db = sqlalchemy.create_engine(
url.URL(
drivername='postgres+pg8000',
username=db_user,
password=db_pass,
database=db_name,
query={
'unix_sock': '/cloudsql/{}/.s.PGSQL.5432'.format(
cloud_sql_connection_name)
}
),
pool_size=5,
max_overflow=2,
pool_timeout=30,
pool_recycle=1800,
)
@app.route('/', methods=['GET'])
def main(request):
with db.connect() as conn:
# Execute the query and fetch all usernames
users = conn.execute("select username from user_table").fetchall()
return users
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
Fatechall()从docs返回游标https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.fetchall.不能将游标对象作为响应返回。您需要将其转换为允许的响应类型。下面的代码可能会帮助您理解这一点。
@app.route('/', methods=['GET'])
def main(request):
users = []
with db.connect() as conn:
# Execute the query and fetch all usernames
db_users = conn.execute("select username from user_table").fetchall()
users = list(db_users)
data = {'users': users}
resp = Response(json.dumps(data), status=200, mimetype="application/json")
return resp
我尝试了您的代码并收到了以下错误:
TypeError:view函数未返回有效响应。返回类型必须是字符串、dict、tuple、响应实例或WSGI可调用,但它是一个列表
所以尝试返回str(用户)
或先将数据转换为多少。
我对Firebase/Firestore/Cloud函数相当陌生,一直在尝试一个小项目,在这个项目中,客户端应用程序调用Firebase Cloud函数来生成一些随机键(随机数),将它们添加到Firestore,成功编写后,将这些键返回到客户端应用程序。有点像随机数发生器。 客户端正确调用该函数(根据Firebase控制台),确实生成密钥,检查它们是否存在于Fi还原中,如果不添加它们。所有的工作直
我对Python相当陌生,在我的应用程序中,我使用Neomodel从Neo4j数据库加载和检索图形数据。 在我的一条路线中,我具有以下功能: 我的用户类定义如下: 我期望我的 /users路由将返回一个包含数据库中所有用户的JSON对象。我明白NodeSet对象不能序列化为JSON对象,因此我试图将其转换为列表。但是现在,当我运行时,我得到以下错误:“TypeError:类型'User'的对象不是
我正在玩mongob,并将一些测试数据{name:"david"}输入到“用户”集合中。我通过键入mongoshell验证了数据在MongoDB中 结果: 在 node.js 脚本中,使用以下代码: 不返回任何结果 我没有发现任何错误,也没有错误。请告知
问题内容: 我试图在postgres函数内返回查询结果。我尝试了一下,并完美地工作了: 问题是我需要一些东西来返回以下结果: 我需要什么回报,或者应该改变什么才能实现这一目标? 问题答案: 这可以通过一个简单的SQL函数来完成: 可以在手册中找到更多详细信息和示例:http : //www.postgresql.org/docs/current/static/xfunc-sql.html#XFUN
因此,我正在构建一个云函数,它接受customerID,根据customerID过滤文档,并返回文档列表。遗憾的是,它返回一个空数组。我相信这是一个简单的解决办法。 以下是云功能: 下面是我从客户端调用它时的代码。 此外,这里是一个萤火虫的屏幕截图。 firestore的截图