переструктурируйте маршруты Flask, которые используют общее подключение к открытой БД

#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)