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("[email protected]") + "@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
admin
cơ 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("[email protected]")