Configuration
PyMongo 直接支持如下的配置项:
MONGO_URI |
一个 MongoDB 网址 用于其他配置项。 |
MONGO_HOST |
你的 MongoDB 服务器的主机名或者 IP 地址。 默认:”localhost”。 |
MONGO_PORT |
你的 MongoDB 服务器的端口。默认:27017。 |
MONGO_AUTO_START_REQUEST |
为了禁用 PyMongo 2.2 的 “auto start request” 行为, 设置成 False。 (请见 MongoClient)。 默认:True。 |
MONGO_MAX_POOL_SIZE |
(可选): PyMongo 连接池中保持空闲连接的最大数量。 默认:PyMongo 默认值。 |
MONGO_SOCKET_TIMEOUT_MS |
(可选): (整型) 在超时前套接字允许一个发送或者接收的耗时(毫秒)。 默认: PyMongo 默认值。 |
MONGO_CONNECT_TIMEOUT_MS |
(可选): (整型) 在超时前允许一个连接的耗时(毫秒)。 默认: PyMongo 默认值。 |
MONGO_DBNAME |
可用于作为 db 属性的数据库名。默认: app.name。 |
MONGO_USERNAME |
用于认证的用户名。默认:None。 |
MONGO_PASSWORD |
用于认证的密码。默认:None。 |
MONGO_REPLICA_SET |
设置成连接的备份集的名称; 这必须匹配到备份集的内部名,由 <http://www.mongodb.org/display/DOCS/Replica+Set+Commands#ReplicaSetCommands-isMaster> 命令)决定的。默认:None。 |
MONGO_READ_PREFERENCE |
决定如何读取路由到备份集的成员。 必须是定义在 pymongo.read_preferences.ReadPreference 中的一个常量 或者一个字符串名称。 |
MONGO_DOCUMENT_CLASS |
告诉 pymongo 返回定制的对象而不是默认的字典, 比如 bson.son.SON。 默认: dict。 |
当 PyMongo 或者 init_app() 仅仅只有一个参数调用的时候 (the Flask 实例),会假设配置值的前缀是 MONGO;能够用 config_prefix 来覆盖这个前缀。
这个技术能够用于连接多个数据库或者数据服务器:
1. app = Flask(__name__)
3. # connect to MongoDB with the defaults
4. mongo1 = PyMongo(app)
6. # connect to another MongoDB database on the same host
7. app.config['MONGO2_DBNAME'] = 'dbname_two'
8. mongo2 = PyMongo(app, config_prefix='MONGO2')
10. # connect to another MongoDB server altogether
11. app.config['MONGO3_HOST'] = 'another.host.example.com'
12. app.config['MONGO3_PORT'] = 27017
13. app.config['MONGO3_DBNAME'] = 'dbname_three'
14. mongo3 = PyMongo(app, config_prefix='MONGO3')
你应该需要注意一些自动配置的设置:
tz_aware:
Flask-PyMongo 一直使用通用时区的 datetime 对象。这是因为当建立连接的时候它设置 tz_aware 参数为 True。从 MongoDB 返回的 datetime 对象一直是 UTC。
safe:
Flask-PyMongo 默认地设置成 “safe” 模式,这会导致 save(), insert(), update(), 和 remove() 在返回前一直等待着服务器的应答。你可以在调用的时候通过传入 safe=False 参数到任何一个受影响的方法中来覆盖它。
