gpt4 book ai didi

python - 在ming中创建连接之前声明模型

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:15 27 4
gpt4 key购买 nike

我想在与数据库连接之前删除我的模型(出于某种原因,例如多线程和数据库配置 uri 的动态加载)。

文档说要这样使用:

from ming import create_datastore
from ming.odm import ThreadLocalODMSession
from ming import schema
from ming.odm import FieldProperty
from ming.odm.declarative import MappedClass

session = ThreadLocalODMSession(
bind=create_datastore('odm_welcome')
)

class WikiPage(MappedClass):
class __mongometa__:
session = session
name = 'wiki_page'

_id = FieldProperty(schema.ObjectId)
title = FieldProperty(schema.String(required=True))
text = FieldProperty(schema.String(if_missing=''))

我们可以看到什么模型声明需要session(在__mongometa__中)。如何在没有 session 变量的情况下声明 WikiPage 模型?然后再设置?

最佳答案

解决方案可以在没有 __mongometa__ 的情况下声明模型:

class WikiPage(MappedClass):
_id = FieldProperty(schema.ObjectId)
title = FieldProperty(schema.String(required=True))
text = FieldProperty(schema.String(if_missing=''))

然后使用集合手动进行映射:

session = ODMSession(bind=create_datastore(uri))
collection_ = collection('wiki_page', session)
session.mapper(WikiPage, collection_)

关于python - 在ming中创建连接之前声明模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41807329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com