#python #flask
#python #flask
Вопрос:
Я пытаюсь повторно разложить и переструктурировать свои маршруты в views/routes.py , но все эти маршруты используют одно общее открытое соединение cassandra. открыть означает, что соединение cassandra будет подключено при запуске сервера и останется открытым во время работы сервера. Подключенное соединение будет использоваться всеми маршрутами. Я думаю о чертежах. Но как повторно разложить и переструктурировать мои коды?
app = Flask(__name__)
dbConnection = None
@app.route('/api/v1/<para1>', methods=['GET', 'OPTIONS'])
@crossdomain(origin="*")
def funnel(para1):
# codes using cassandra Connection
@app.route('/api/v1/xxx/<para2>', methods=['GET', 'OPTIONS'])
@crossdomain(origin="*")
def funnel(para2):
# codes using cassandra Connection
@app.route('/api/v1/yyy/<para3>', methods=['GET', 'OPTIONS'])
@crossdomain(origin="*")
def funnel(para3):
# codes using cassandra Connection
if __name__ == '__main__':
# Connect db connection
app.run(host='0.0.0.0', port=8080, debug=True)
Ответ №1:
Следующие коды, похоже, работают. Но любые комментарии приветствуются.
myblueprint.py
from flask import Blueprint
class MyBlueprint(Blueprint):
dbconnection = None
def setDb( self, db ):
self.dbconnection = db
myview.py
my_api = MyBlueprint('my_api', __name__ )
@my_api.route('/api/v1/yyy/<para3>', methods=['GET', 'OPTIONS'])
@crossdomain(origin="*")
def myapi(para3):
# codes using funnel_api.dbconnection
app.py
app = Flask(__name__)
cassandraConnection = None
if __name__ == '__main__':
my_api.setDb( cassandraConnection )
app.register_blueprint( my_api )
#SETUP RESOURCE AND START SERVER
app.run(host='0.0.0.0', port=5000, debug=True)