django 1.5与mongodb

时间:2013-09-04 06:25:43

标签: python django mongodb

我是djnago的新手 - 所以请光临我。

我想使用mongodb(目前为2.4.6)使用django(目前为1.5.2)。 直到现在我都试过了:

  1. mongodbengine:不喜欢继承Document类(he said更好)。
  2. django-mongodb-engine这正是我想要的只是当它运行时我的django跳到1.3而不是1.5.2 [我没有多想太多,猜测它是1.3分支的norel并假设它最好留在1.5.2]。
  3. those闲逛并试图节省一些时间来问这里..
  4. 请指教,我的目标是运行django 1.5.2(使用virtualenv)所以我可以使用mongodb DB的普通模型。 什么是最好的方法?

2 个答案:

答案 0 :(得分:3)

我担心djangomongoengine还没有整合,但它仍在进行中。如果你想使用mongoengine,我建议你使用flask,因为你必须使用它的另一种方式是相当令人沮丧的,你需要使用光标连接到mongodb { {1}}文件然后从models.py继承以创建您的课程。

因此,每次需要使用模型时,都需要连接回来,多次点击数据库。这不是django通常运行的方式,因为它使用一个连接来处理多个查询以提高效率。

从长远来看,这会成为一种真正的痛苦,我强烈反对你使用django和Documentmongoengine来解决这个问题,特别是对于一个对django来说是全新的人第一名。

如果您是django的新用户,请使用mongodbSqlite3之类的RDBMS进行开发。但是如果使用PostgreSQL必须,那么我建议你首先重新考虑使用django,因为mongodb通过{{mongodb与flask更好地集成。 1}}。

我建议您在处理mongoengine时不要使用mongoengine以外的任何内容,因为mongodbmongoengine有最佳支持,并且到目前为止使用mongodb和python时最灵活的选项。不仅如此,语法几乎与django的ORM相同。

我深感遗憾的是,我无法提供更好的答案,唯一的解决方案仍然是每次都建立联系,更不用说所有这些都与django的形式没有很好的整合,这是一个很大的无赖。

答案 1 :(得分:1)

您可以为像{User}这样的django模型使用SQL关系数据库。然后,您可以使用Database Router根据应用名称进行路由,如果它是auth,则使用关系数据库。这将允许您通过app / model指定要使用的数据库。

此网站上某人的示例:Mixing Postgres and Mongo