我已经使用mongoengine一段时间了,有大量的python数据处理代码依赖于一组通用的对象文档模型。你知道吗
现在我需要从Flask访问相同的mongodb实例。我想使用相同的ODM定义。你知道吗
class User(Document):
email = StringField(required=True)
first_name = StringField(max_length=50)
last_name = StringField(max_length=50)
问题是flask mongoengine要求您首先设置flask上下文“db”,然后构建ODM定义,从“db”而不是基本mongoengine类继承文档类和字段类型。你知道吗
class User(db.Document):
email = db.StringField(required=True)
first_name = db.StringField(max_length=50)
last_name = db.StringField(max_length=50)
我想,一个解决方案是复制所有现有的ODM定义,从我的主flask应用程序导入“db”,然后在所有内容前面加上“db”。你知道吗
如果我简单地将所有内容都更改为“db.”版本,那可能会破坏我所有的遗留代码。你知道吗
因此,我认为在文档类上使用super()可能有一个技巧,可以检测我是将ODM导入Flask上下文还是从独立的数据处理脚本导入ODM。你知道吗
我也在想,我不想对每个文档的每个字段类型都进行super(),我应该能够构建或引用一个公共函数,为我处理这个问题。你知道吗
不过,我的超能力很弱。我甚至不确定这是不是最好的办法。我希望有人能够并且愿意分享一些关于如何处理这个问题的提示。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐