2

我想使用 django(当前为 1.5.2)和 mongodb(当前为 2.4.6)。直到现在我已经尝试过:

  1. mongodbengine:不喜欢从 Document 类继承(他说得更好)。
  2. django-mongodb-engine 这正是我想要的,只有当它运行时我的 django 跳转到 1.3 而不是 1.5.2 [我没有多想,从 1.3 分支猜测它是 norel 并假设它是最好的保持在 1.5.2]。
  3. 看看那些,并试图节省一些时间在这里问..

请告知,我的目标是运行 django 1.5.2(带有 virtualenv),这样我就可以将普通模型与 mongodb DB 一起使用。最好的方法是什么?

4

2 回答 2

3

恐怕djangomongoengine没有集成,但它仍在进行中。如果你想使用mongoengine,我建议你使用flask,因为你必须使用它的另一种方式是相当令人沮丧的,你需要mongodb在你的文件中使用游标连接到models.py然后继承Document来创建你的类。

因此,每次需要使用模型时,都需要重新连接,多次访问数据库。这不是 django 通常的操作方式,因为它使用一个连接来处理多个查询以提高效率。

从长远来看,这将成为一种真正的痛苦,我强烈反对你使用 djangomongoenginemongodb就此而言,尤其是对于一个刚接触 django 的人来说。

如果您是 django 新手,请使用 RDBMS 之类的Sqlite3PostgreSQL进行开发。但是如果必须使用mongodb那么我建议你首先重新考虑使用 django ,因为mongodb与flask有更好的集成,通过mongoengine.

而且我建议您mongoengine在处理 时不要使用其他任何东西mongodb,因为mongoengine它对 的支持最好mongodb,并且是迄今为止mongodb使用和 python时最灵活的选择。不仅如此,其语法几乎与 django 的 ORM 相同。

我深感遗憾我无法提供更好的答案,唯一的解决方案仍然是每次都建立连接,更不用说所有这些都不能很好地与 django 的表单集成,这是一个很大的麻烦。

于 2013-09-04T07:06:26.797 回答
1

django您可以为User 等模型使用 SQL 关系数据库。然后,您可以使用数据库路由器根据应用程序名称进行路由,如果是,auth则使用关系数据库。这将让您通过 app/model 指定要使用的数据库。

这个网站上某人的一个例子:混合 Postgres 和 Mongo

于 2013-09-04T14:52:28.260 回答