Měli byste být schopni ukončit heslo pomocí urllib.quote()
. I když byste měli heslo pouze citovat/escapovat a vyloučit username:
;jinak :
bude také escapováno do %3A
.
Například:
import pymongo
import urllib
mongo_uri = "mongodb://username:" + urllib.quote("[email protected]") + "@127.0.0.1:27001/"
client = pymongo.MongoClient(mongo_uri)
Výše uvedený fragment byl testován pro MongoDB v3.2.x, Python v2.7 a PyMongo v3.2.2.
Výše uvedený příklad předpokládá v řetězci připojení MongoDB URI:
- Uživatel je vytvořen v
admin
databáze. - Hostitel
mongod
běžící na je 127.0.0.1 (localhost) - Port
mongod
přiřazeno je 27001
Pro Python 3.x můžete použít urllib.parse.quote() k nahrazení speciálních znaků v hesle pomocí %xx
uniknout. Například:
url.parse.quote("[email protected]")