2016-10-19 10 views
0

私のルートをviews/routes.pyに再因子付けして再構築しようとしていますが、これらのルートはすべて共通のオープンなcassandra接続を使用しています。開いているとは、サーバー起動時にカスケードラ接続が接続され、サーバーの実行中は開いたままになります。接続された接続はすべてのルートで使用されます。私は青写真について考えています。しかし、私のコードを再因子化し、再構造化する方法は?re-structure共通のオープンdb接続を共有するFlaskルート

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) 
+0

http://flask-sqlalchemy.pocoo.org/ – davidism

+0

@davidism私はcassandraを使って、申し訳ありません。 – BAE

+0

さて、その拡張機能がやっているのと同じことをやってください。しかし、Cassandraのために。 – davidism

答えて

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) 
関連する問題