将 Google 云平台 API 集成到 Flask 应用程序中
Integrating the Google Cloud Platform API into a Flask app
我正在创建一个基本的 Flask 应用程序,它可以将 GCP 项目上的实例列表 运行 输出到浏览器中,但是当 return 计算 [的结果时我遇到了一些问题=33=] 在浏览器中调用。
我的 Flask 应用看起来像这样:
@app.route(API_ROOT + 'list')
def list_all_running():
return test_list.list_all_running_instances()
我正在尝试的函数 return 看起来像这样
def list_all_running_instances():
request = service.instances().list(project=project, zone='europe-west1-d')
while request is not None:
response = request.execute()
for instance in response['items']:
# if instance['status'] == 'RUNNING':
return instance
request = service.instances().list_next(previous_request=request, previous_response=response)
这是页面底部示例中 'python' 下列出的 this script 的缩短和改编版本。
问题是当我在 flask 中调用函数时,它只是 return 第一个实例 运行。在原始 gcp api 脚本示例中,它使用 pprint
而不是 return,它在控制台上运行良好,但我无法将 pprint
结果输出到浏览器。
谁能推荐最好的方法?有没有一种方法可以通过 Flask 将 pprint
输出到浏览器中。我意识到当 returning 它只会输出第一次迭代的结果然后停止,因此这个问题。
如您所知,我是 Flask 的新手,如果这看起来是个愚蠢的问题,我深表歉意。
问题是 return
语句完成了 list_all_running_instances
函数的执行。你可以这样做:
def list_all_running_instances():
request = service.instances().list(project=project, zone='europe-west1-d')
all_instances = []
while request is not None:
response = request.execute()
all_instances.extend(response['items'])
request = service.instances().list_next(previous_request=request, previous_response=response)
return {'all_instances': all_instances}
我正在创建一个基本的 Flask 应用程序,它可以将 GCP 项目上的实例列表 运行 输出到浏览器中,但是当 return 计算 [的结果时我遇到了一些问题=33=] 在浏览器中调用。
我的 Flask 应用看起来像这样:
@app.route(API_ROOT + 'list')
def list_all_running():
return test_list.list_all_running_instances()
我正在尝试的函数 return 看起来像这样
def list_all_running_instances():
request = service.instances().list(project=project, zone='europe-west1-d')
while request is not None:
response = request.execute()
for instance in response['items']:
# if instance['status'] == 'RUNNING':
return instance
request = service.instances().list_next(previous_request=request, previous_response=response)
这是页面底部示例中 'python' 下列出的 this script 的缩短和改编版本。
问题是当我在 flask 中调用函数时,它只是 return 第一个实例 运行。在原始 gcp api 脚本示例中,它使用 pprint
而不是 return,它在控制台上运行良好,但我无法将 pprint
结果输出到浏览器。
谁能推荐最好的方法?有没有一种方法可以通过 Flask 将 pprint
输出到浏览器中。我意识到当 returning 它只会输出第一次迭代的结果然后停止,因此这个问题。
如您所知,我是 Flask 的新手,如果这看起来是个愚蠢的问题,我深表歉意。
问题是 return
语句完成了 list_all_running_instances
函数的执行。你可以这样做:
def list_all_running_instances():
request = service.instances().list(project=project, zone='europe-west1-d')
all_instances = []
while request is not None:
response = request.execute()
all_instances.extend(response['items'])
request = service.instances().list_next(previous_request=request, previous_response=response)
return {'all_instances': all_instances}