为了从Flask与MongoDB通信,我使用以下代码定义连接:
CLIENT = pymongo.MongoClient('mongodb://localhost:27017/')
一切正常,但是一旦我尝试在Docker上部署应用程序,就会收到以下错误消息:
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused
要解决此问题,我可以将以前的代码替换为:
import os
client = MongoClient(os.environ['DB_PORT_27017_TCP_ADDR'],27017)
但是它仅适用于Docker,不适用于我的本地计算机。 如何定义连接以使其在Docker和本地计算机上均可工作?
答案 0 :(得分:0)
您可以指定是否存在DB_PORT_27017_TCP_ADDR
环境变量,请使用该变量。否则,请使用localhost
,例如:
import os
client = MongoClient(os.environ.get('DB_PORT_27017_TCP_ADDR') or 'localhost', 27017)