Menggunakan Pengekodan URL untuk Mengendalikan Aksara Khas dalam Rentetan Sambungan Pangkalan Data
Membangunkan aplikasi Python dengan SQLalchemy selalunya melibatkan mewujudkan sambungan pangkalan data menggunakan rentetan sambungan. Walau bagaimanapun, aksara khas dalam kata laluan boleh menyebabkan masalah penghuraian. Bolehkah kami mengubah suai rentetan sambungan atau komponen kata laluannya untuk mendayakan penghuraian yang betul?
Pertimbangkan kata laluan yang mengandungi aksara khas seperti "p@ss". Apabila digabungkan ke dalam rentetan sambungan seperti "postgresql://user:p@ss@host/database," aksara "@" dan ":" ditafsirkan sebagai pembatas, menghalang sambungan yang berjaya.
Satu penyelesaian ialah menggunakan kaedah enjin.URL.create() dan lulus kelayakan secara langsung. Walau bagaimanapun, pengekodan rentetan sambungan secara manual adalah lebih baik jika boleh.
Penyelesaian terletak pada pengekodan URL bahagian kata laluan rentetan:
from urllib.parse import quote_plus from sqlalchemy.engine import create_engine engine = create_engine("postgres://user:%s@host/database" % quote_plus("p@ss"))
Kaedah ini digunakan oleh perwakilan URL SQLAlchemy kelas untuk melepaskan kata laluan. Dengan pengekodan URL kata laluan, anda boleh mengendalikan aksara khas dan memastikan penghuraian rentetan sambungan yang betul.
Atas ialah kandungan terperinci Bolehkah Pengekodan URL Menyelesaikan Isu Aksara Khas dalam Rentetan Sambungan SQLAlchemy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!