gpt4 book ai didi

python - 如何更改 mongodb flask ?

转载 作者:行者123 更新时间:2023-12-01 05:56:53 26 4
gpt4 key购买 nike

我有一个基于 flask 的应用程序,我的配置如下:

from flask import Flask
from flask.ext.mongoengine import MongoEngine

app = Flask(__name__)
app.config["MONGODB_DB"] = "my_tumble_log"
app.config["SECRET_KEY"] = "KeepThisS3cr3t"

db = MongoEngine(app)

if __name__ == '__main__':
app.run()

我有一个 models.py 文件,其中包含我的所有模型,类似于:导入日期时间

from flask import url_for
from tumblelog import db


class Post(db.Document):
created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
title = db.StringField(max_length=255, required=True)
slug = db.StringField(max_length=255, required=True)
body = db.StringField(required=True)
comments = db.ListField(db.EmbeddedDocumentField('Comment'))

def get_absolute_url(self):
return url_for('post', kwargs={"slug": self.slug})

def __unicode__(self):
return self.title

meta = {
'allow_inheritance': True,
'indexes': ['-created_at', 'slug'],
'ordering': ['-created_at']
}

我想定义一个新的路由,以便我可以在那里使用另一个数据库及其集合:

@app.route('/sampleroute')
def sample_route():
#Insert Code to use another database of a specific name
#Query Out a particular "OtherClass" that would be in models.py

我需要做什么才能将“db”设置为等于“db1”等其他数据库,而不是仅在“/sampleroute”内的“my_tumble_log”?我可以像 Post 在同一个 models.py 文件中那样在自己的类中声明“OtherClass”吗?或者我想用 MongoEngine 做不到吗?

最佳答案

要使用多个数据库,您可以使用 connect() 并为连接提供别名。

然后,在model.py中添加一个meta标签来指定数据库:

meta = {"db_alias": "user-db"}

参见Connecting to MongoDB在文档中了解更多信息

关于python - 如何更改 mongodb flask ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12062704/

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