flask_mongo_drf.contrib package

Submodules

flask_mongo_drf.contrib.mongodb_manager module

class flask_mongo_drf.contrib.mongodb_manager.MongoDBManager[source]

Bases: object

解耦版 MongoDB 数据库管理器: - 管理底层 MongoClient 的连接与释放 - 提供静态方法,方便业务层获取 Collection 实例 - 支持连接池配置、默认数据库缓存、Flask 应用工厂集成

classmethod register_client(name: str, uri: str, default_db: str | None = None, **kwargs) MongoClient[source]

注册并初始化 MongoDB 客户端。

Parameters:
  • name – 客户端唯一标识

  • uri – MongoDB 连接 URI

  • default_db – 默认数据库名(可选,用于 get_collection 简化调用)

  • kwargs – 额外参数(如 maxPoolSize, minPoolSize 等)

Returns:

MongoClient 实例

Raises:

MongoDBConnectionError – 连接失败时抛出

classmethod get_client(name: str = 'default') MongoClient[source]

获取已注册的客户端

classmethod get_database(db_name: str | None = None, client_name: str = 'default')[source]

获取数据库实例。

Parameters:
  • db_name – 数据库名,若为 None 则使用注册时的默认数据库

  • client_name – 客户端名称

Returns:

数据库实例

classmethod get_collection(collection_name: str, db_name: str | None = None, client_name: str = 'default') Collection[source]

获取 Collection 实例(最常用)。

Parameters:
  • collection_name – 集合名称

  • db_name – 数据库名(可选,默认使用客户端注册时的默认数据库)

  • client_name – 客户端名称

Returns:

Collection 实例

classmethod close_all()[source]

关闭所有已注册的 MongoDB 连接

property clients
flask_mongo_drf.contrib.mongodb_manager.init_mongodb(app)[source]

从 Flask 应用配置中批量初始化 MongoDB 连接。

配置格式:
app.config[“MONGODB_SETTINGS”] = {

“default”: {“host”: “mongodb://localhost:27017”, “db”: “myapp”}, “analytics”: {“host”: “mongodb://…”, “db”: “logs”, “maxPoolSize”: 20}

}

注意:不再自动从环境变量 MONGO_URI/MONGO_DB 降级,请显式配置。

Module contents

flask_mongo_drf.contrib.init_mongodb(app)[source]

从 Flask 应用配置中批量初始化 MongoDB 连接。

配置格式:
app.config[“MONGODB_SETTINGS”] = {

“default”: {“host”: “mongodb://localhost:27017”, “db”: “myapp”}, “analytics”: {“host”: “mongodb://…”, “db”: “logs”, “maxPoolSize”: 20}

}

注意:不再自动从环境变量 MONGO_URI/MONGO_DB 降级,请显式配置。

class flask_mongo_drf.contrib.MongoDBManager[source]

Bases: object

解耦版 MongoDB 数据库管理器: - 管理底层 MongoClient 的连接与释放 - 提供静态方法,方便业务层获取 Collection 实例 - 支持连接池配置、默认数据库缓存、Flask 应用工厂集成

classmethod register_client(name: str, uri: str, default_db: str | None = None, **kwargs) MongoClient[source]

注册并初始化 MongoDB 客户端。

Parameters:
  • name – 客户端唯一标识

  • uri – MongoDB 连接 URI

  • default_db – 默认数据库名(可选,用于 get_collection 简化调用)

  • kwargs – 额外参数(如 maxPoolSize, minPoolSize 等)

Returns:

MongoClient 实例

Raises:

MongoDBConnectionError – 连接失败时抛出

classmethod get_client(name: str = 'default') MongoClient[source]

获取已注册的客户端

classmethod get_database(db_name: str | None = None, client_name: str = 'default')[source]

获取数据库实例。

Parameters:
  • db_name – 数据库名,若为 None 则使用注册时的默认数据库

  • client_name – 客户端名称

Returns:

数据库实例

classmethod get_collection(collection_name: str, db_name: str | None = None, client_name: str = 'default') Collection[source]

获取 Collection 实例(最常用)。

Parameters:
  • collection_name – 集合名称

  • db_name – 数据库名(可选,默认使用客户端注册时的默认数据库)

  • client_name – 客户端名称

Returns:

Collection 实例

classmethod close_all()[source]

关闭所有已注册的 MongoDB 连接

property clients