重新构建共享公共开放数据库连接的Flask路由

时间:2016-10-19 16:09:26

标签: python flask

我试图将我的路由重新分解并重新构建为views / routes.py,但所有这些路由都使用一个常见的开放cassandra连接。 open表示启动服务器时将连接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 个答案:

答案 0 :(得分:0)

以下代码似乎有效。但欢迎任何评论。

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)