目前,我正试图通过Django应用程序从数据库(MongoDB,但我过去使用过MSSQL 2008)返回简单查询。
我的问题是围绕一般的Django数据库设置。例如,如果我在后端使用pymongo来建立连接并返回我正在寻找的集合,django-nonrel和mongodb-engine真的在做什么?如果我返回查询的数据(例如在views.py中)并通过我的一个模板呈现这个数据,那么在settings.py中设置数据库是否有不利之处?
以下是我目前如何在views.py中返回查询数据:
from django.shortcuts import render_to_response
from pymongo import MongoClient
def bar(request):
client = MongoClient()
db = client['myDB']
collection = db.myCollection.find({"date":"2013-10-23"})
return render_to_response("index.html", {"returnedData" : collections})
答案 0 :(得分:2)
您的代码的缺点是您需要支付设置MongoClient并在每次请求时建立与服务器的连接的成本。您应该只创建一个MongoClient并在应用程序的整个生命周期中使用它。如果您测试示例代码的性能并将其与创建单个MongoClient的性能进行比较,那么当您的应用程序启动时,我希望您会发现您的代码速度要慢几个数量级。