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()它的容易。 –