如何为python eve应用程序动态更新mongo_prefix

时间:2018-08-14 05:27:04

标签: python flask eve

我使用不同的mongo_db_prefixes定义了两个mongo数据库,例如:

  

USER1_MONGO_DBNAME ='user1db'
  USER2_MONGO_DBNAME ='user2db'

和其余两个用户的mongodb设置都相同。

如果我想动态更改用于Eve应用程序的mongodb名称,我该如何更改?

1 个答案:

答案 0 :(得分:0)

看看documentation中的以下代码段:

from eve.auth import BasicAuth

class MyBasicAuth(BasicAuth):
    def check_auth(self, username, password, allowed_roles, resource, method):
        if username == 'user1':
            self.set_mongo_prefix('MONGO1')
        elif username == 'user2':
            self.set_mongo_prefix('MONGO2')
        else:
            # serve all other users from the default db.
            self.set_mongo_prefix(None)
        return username is not None and password == 'secret'

app = Eve(auth=MyBasicAuth)
app.run()

此示例根据身份验证的用户切换数据库。您可能也可以在回调函数中使用set_mongo_prefix方法,请参见Event Hooks