Bạn có thể thoát mật khẩu bằng cách sử dụng urllib.quote() . Mặc dù bạn chỉ nên trích dẫn / thoát mật khẩu và loại trừ username:; nếu không thì : cũng sẽ được thoát thành %3A .
Ví dụ:
import pymongo
import urllib
mongo_uri = "mongodb://username:" + urllib.quote("example@sqldat.com") + "@127.0.0.1:27001/"
client = pymongo.MongoClient(mongo_uri)
Đoạn mã trên đã được kiểm tra cho MongoDB v3.2.x, Python v2.7 và PyMongo v3.2.2.
Ví dụ trên được giả định trong chuỗi kết nối MongoDB URI:
- Người dùng được tạo trong
admincơ sở dữ liệu. - Máy chủ
mongodđang chạy trên là 127.0.0.1 (localhost) - Cổng
mongodđược gán cho là 27001
Đối với Python 3.x, bạn có thể sử dụng urllib.parse.quote () để thay thế các ký tự đặc biệt trong mật khẩu của mình bằng cách sử dụng %xx bỏ trốn. Ví dụ:
url.parse.quote("example@sqldat.com")