MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come sfuggire a @ in una password nella connessione pymongo?

Dovresti essere in grado di sfuggire alla password usando urllib.quote() . Anche se dovresti solo citare / sfuggire alla password ed escludere il username:;altrimenti il ​​: verrà eseguito anche l'escape in %3A .

Ad esempio:

import pymongo 
import urllib 

mongo_uri = "mongodb://username:" + urllib.quote("[email protected]") + "@127.0.0.1:27001/"
client = pymongo.MongoClient(mongo_uri)

Lo snippet sopra è stato testato per MongoDB v3.2.x, Python v2.7 e PyMongo v3.2.2.

L'esempio sopra presupposto nella stringa di connessione URI MongoDB:

  • L'utente viene creato in admin Banca dati.
  • L'host mongod in esecuzione è 127.0.0.1 (localhost)
  • Il porto mongod assegnato a è 27001

Per Python 3.x, puoi utilizzare urllib.parse.quote() per sostituire i caratteri speciali nella tua password usando il %xx fuga. Ad esempio:

url.parse.quote("[email protected]")