Anda harus dapat keluar dari sandi menggunakan urllib.quote()
. Meskipun Anda hanya boleh mengutip/menghindari kata sandi, dan mengecualikan username:
;jika tidak, :
juga akan diloloskan ke %3A
.
Misalnya:
import pymongo
import urllib
mongo_uri = "mongodb://username:" + urllib.quote("[email protected]") + "@127.0.0.1:27001/"
client = pymongo.MongoClient(mongo_uri)
Cuplikan di atas diuji untuk MongoDB v3.2.x, Python v2.7, dan PyMongo v3.2.2.
Contoh di atas diasumsikan dalam string koneksi URI MongoDB:
- Pengguna dibuat di
admin
basis data. - Tuan rumah
mongod
yang berjalan adalah 127.0.0.1 (localhost) - Port
mongod
ditugaskan untuk adalah 27001
Untuk Python 3.x, Anda dapat menggunakan urllib.parse.quote() untuk mengganti karakter khusus dalam kata sandi Anda menggunakan %xx
melarikan diri. Misalnya:
url.parse.quote("[email protected]")