0
我嘗試使用mongoengine
連接mongodb
數據庫與動態連接。我從URL請求獲取數據庫名稱。問題是它只連接了第一個url數據庫。使用mongoengine動態連接到mongodb數據庫
這裏是mycode的
run.py
from application import app
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8089)
routes.py
from flask import request
from application import app
from mongoengine import connect
class DBConnection():
def __init__(self):
database = request.url.split("/")[2].split(".")[0]
print(database)
connect(database,alias='default')
@app.route('/',methods=['GET'])
def index():
try:
DBConnection();
return redirect(url_for('dashboard'))
except Exception as e:
raise e
在上面的代碼時,我打網址mydomain.maindomain.com它將連接mydomai ñ和命中URL yourdomain.maindomain.com將與YOURDOMAIN
的問題是,它只有一個數據庫連接進行連接。例如我第一次打mydomain.maindomain.com然後數據庫是每個時間MYDOMAIN連接即使我打yourdomain.maindomain.com其顯示MYDOMAIN數據庫記錄。
爲什麼你存儲'routes'?每個請求都需要新的'db_connection',但默認存儲。還有一點,如何在分開的請求中攜帶數據庫連接?使用'MongoClient',像這樣''從pymongo導入MongoClient; c = MongoClient('localhost',27017); c [param_X] .what_you_do_with_this' – dsgdfg
mongoengine提供模型功能,如果我使用MongoClient然後獲取查詢是db.foo.find_one (...)如果我使用mongoengine只是做model.objects()它的容易。 –