MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como escapar @ em uma senha na conexão pymongo?


Você deve conseguir escapar da senha usando urllib.quote() . Embora você deva apenas citar/escapar a senha e excluir o username:;caso contrário, o : também será escapado para %3A .

Por exemplo:
import pymongo 
import urllib 

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

O trecho acima foi testado para MongoDB v3.2.x, Python v2.7 e PyMongo v3.2.2.

O exemplo acima assumido na string de conexão do URI do MongoDB:
  • O usuário é criado no admin base de dados.
  • O host mongod em execução é 127.0.0.1 (localhost)
  • A porta mongod atribuído é 27001

Para Python 3.x, você pode utilizar urllib.parse.quote() para substituir caracteres especiais em sua senha usando o %xx escapar. Por exemplo:
url.parse.quote("[email protected]")