从Django迁移到金字塔

时间:2014-01-03 02:14:00

标签: python django mongodb sqlalchemy pyramid

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

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

随着时间的推移,我意识到使用内置管理员效率不高。由于FK关系表,我花了很多时间重新编写数据注册表,并且随着webstore中的项目多样化,必须扩展目录表。

我想到的解决方案之一是使用NoSQL(如MongoDB)开发目录,以使其更灵活。一个好主意,但后来我发现Django没有正式支持NoSQL。有一个支持NoSQL的Django分支,但版本远远落后于主流,并且很长一段时间都不能保证支持。

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

然而,我还没有找到任何好的金字塔托管。我应该将我的网店迁移到金字塔吗?值得吗?在迁移之前我需要考虑哪些风险和挑战?

1 个答案:

答案 0 :(得分:0)

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()