Фляга rest api: невозможно получить доступ к соединению базы данных как глобальная переменная
Я пытаюсь создать Restful Web-сервис, используя Flask, flask_restful.Resource, где мне нужно получить доступ к таблицам apache phoenix для каждого запроса (GET/POST). Сначала я пытался создать соединение базы данных в app.py, заполнить глобальную переменную flask.g и использовать ее в своем классе ресурсов, надеясь, что мне не нужно каждый раз создавать соединение.
Однако я не могу получить доступ к переменным flask.g в своем классе ресурсов.
Вот мой код:
#!/usr/bin/python
import os
from flask_restful import Resource
from flask_restful import reqparse
from flask import jsonify, request
from flask import current_app, app
from flask import g
import traceback
import jsonschema as js
from phoenix_dam import PhoenixDam
class ModelExecStatsService(Resource):
def __init__(self):
self.db_conn = None
if request.is_json:
print ("request is a json")
self.request_json = request.get_json()
else:
self.request_json = None
self.result_dict = []
super(ModelExecStatsService, self).__init__()
def get(self):
try:
app_name = request.args.get('appName')
model_name = request.args.get('modelName')
model_version = request.args.get('modelVersion')
print("args : ",app_name, model_name, model_version)
sql_query = "select * from mydb.mytable"
print (sql_query)
print ("acquiring connection..")
print(" Now, submit the query to the database")
result_set = PhoenixDam.read_data(g.db_conn,sql_query)
for row in result_set:
row_dict = dict(zip(self.columns_list,row))
self.result_dict.append(row_dict)
return self.result_dict
except Exception:
traceback.print_exc()
return { 'message' : 'Error in Retrieving Model Stats' }
finally:
self.db_conn.close()