【问题标题】:Migrating From Django to Pyramid [closed]从 Django 迁移到 Pyramid [关闭]
【发布时间】:2014-01-20 15:16:34
【问题描述】:

我创建了一个在线网上商店。最初我使用 Django 是因为它很棒的 ORM(实际上是我遇到的第一个 ORM)和内置的管理员。

我的网上商店由几个基本组件组成,例如购物车、目录和一些用户管理模块。

随着时间的推移,我意识到使用内置管理器效率不高。由于FK关系表,我花了很多时间修改数据注册表,并且随着网上商店中的商品多样化,目录表必须扩展。

我想到的一个解决方案是使用 MongoDB 等 NoSQL 开发目录,以使其更加灵活。一个好主意,但后来我发现 Django 没有正式支持 NoSQL。 Django有一个fork,支持NoSQL,但版本落后主流,不保证会支持很长时间。

然后我遇到了金字塔。我真的很喜欢 Python,我想继续使用它进行开发。我发现 Pyramid 有 SQLAlchemy 来代替 Django ORM 并且可以与 MongoDB 一起使用。它也更简单;我必须只插入我想使用的组件,并且坚持使用 Django 的意义较小,因为我发现内置管理员对此不实用。

但是,我还没有找到任何好的 Pyramid 托管。我应该将我的网上商店迁移到 Pyramid 吗?值得吗?在此迁移之前,我需要考虑哪些风险和挑战?

【问题讨论】:

  • 您可以在 Django 中使用 NoSQL。如果您想使用MongoDB,请尝试pymongomongoengine
  • @PuffinGDI 是的,但它不会被视为 ORM 吗?你觉得更容易吗?
  • pyramid 可以托管在任何可以托管 python wsgi 应用程序的地方。 webfaction.com 就是这样的主机之一,但还有很多其他主机

标签: python django mongodb sqlalchemy pyramid


【解决方案1】:

MongoEngine 与 Django 使用的 ORM 非常相似。

示例代码:

型号:

class UserProfile(Document):
    user = ReferenceField(User, required=True, primary_key=True)
    name = StringField()

查看或操作

user_obj = authenticate(username=account, password=passwd)
profile_obj = UserProfile.objects(user = user_obj).first()
profile_obj.name = "Mongo"
profile_obj.save()

【讨论】:

  • 你是建议在 Pyramid 或 Django 中使用 mongoengine 吗?
  • mongoengine 现在不支持 Pyramid。它只支持 Django 和 Flask。如果你真的想使用 Pyramid,最好的选择可能是编写代码直接与 NoSQL DB 交互。
  • mongoengine 与金字塔配合得很好
  • 为什么会被搁置?我无法理解..当然,我们正在询问可能基于某些解决方案的意见。
猜你喜欢
  • 2014-09-29
  • 2010-09-06
  • 2011-04-03
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多