MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie entkomme ich @ in einem Passwort in einer Pymongo-Verbindung?

Sie sollten das Passwort mit urllib.quote() maskieren können . Obwohl Sie das Passwort nur in Anführungszeichen/Escapezeichen setzen und den username: ausschließen sollten;ansonsten der : wird auch in %3A maskiert .

Zum Beispiel:

import pymongo 
import urllib 

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

Das obige Snippet wurde für MongoDB v3.2.x, Python v2.7 und PyMongo v3.2.2 getestet.

Das obige Beispiel wird in der MongoDB-URI-Verbindungszeichenfolge angenommen:

  • Der Benutzer wird im admin angelegt Datenbank.
  • Der Wirt mongod läuft unter 127.0.0.1 (localhost)
  • Der Hafen mongod zugewiesen ist 27001

Für Python 3.x können Sie urllib.parse.quote() verwenden, um Sonderzeichen in Ihrem Passwort mit %xx zu ersetzen fliehen. Zum Beispiel:

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