2016-05-19 8 views
0

私は悲しいかな、フラスコ、青写真で問題に遭遇し、mysqlとのグローバルdb接続を使って安心しました。どのように地球上の青写真のリソースは、グローバルdb connを取得しますか?ですから、python.connectorへのグローバルconnを定義すれば、どのようにしてデータベースを青写真と一緒に使うことができますか?私は青写真に私のdb connを渡す方法を見ていない。Pythonの青写真は、データベースのconnentionsで動作しないために縮尺されていません

フラスコのmysql extなどは使用できません。ファブリックを使用しているので、Pythonコネクタからの純粋な接続でなければなりません。ここで

は私のメインのコードです:ここでは

# views.py 
from flask import Blueprint 
from flask_restful import Api 
from resources.register import register 
from app import app 

db = "This is my global mysql conn" 


api_bp = Blueprint('api', __name__) 
api = Api(api_bp) 
api.add_resource(register, '/api/driver/register') 
app.register_blueprint(api_bp) 

は私のリソースです:gオブジェクトにデータベース接続を置くことについての

from flask_restful import Resource 
from flask import request, jsonify 

class register(Resource): 
def post(self): 
    data = request.json 
    partner_ref = data['ref'] 
    partner_driver_ref = data['\driver_ref'] 
    query = """INSERT INTO %s (partner_ref,partner_driver_ref) VALUES ('%s','%s')""" % (ref,driver_ref) 
    db.execute_query(query,select=False,table=None,key=None) 
    status = {'status':'OK'} 
    return jsonify(status) 
+1

方法を使用するには、別のファイルにDBオブジェクトを入れて、メインとあなたの青写真の両方からそれをインポートしますか? – SuperSaiyan

+0

しかし、私は100のリソースすなわちファイルを持ち、リソースごとに別々のconnを望んでいません。 – Tampa

+1

それをインポートすると、インポートするすべてのモジュールで同じオブジェクトが取得されます。すべてのモジュールで 'id(db) 'を使ってチェックしてください。どこでも同じオブジェクトIDを取得する必要があります。 – SuperSaiyan

答えて

0

どのように?

@api_bp.before_app_request 
def connect_db(): 
    if not hasattr(g, 'db'): 
     g.db = db 

@api_bp.teardown_app_context 
def close_db(): 
    if hasattr(g, 'db'): 
     # close your db connection here. 

そして、あなたはそれを使用したい場合は、ちょうどあなたについてg.db.execute_query(...)

関連する問題