Schreiben Sie eine Verbindungszeichenfolge, wenn das Passwort Sonderzeichen enthält
Ich bin mit SQLalchemy für ein Python-Projekt, und ich möchte eine ordentliche Verbindungszeichenfolge für den Zugriff auf meine Datenbank. So zum Beispiel:
engine = create_engine('postgres://user:pass@host/database')
Das problem ist, mein Passwort enthält eine Sequenz von speziellen Zeichen, die als Trennzeichen interpretiert, wenn ich versuche zu verbinden.
Ich weiß, ich könnte einfach ein Objekt erstellen und dann an meine Anmeldeinformationen wie diese:
drivername = 'postgres',
username = 'user',
password = 'pass',
host = 'host',
database = 'database'
Aber ich würde viel lieber eine Verbindungszeichenfolge verwenden, wenn dies möglich ist.
So klar zu sein, ist es möglich zu codieren meine Verbindungszeichenfolge, oder das Passwort Teil der Verbindungszeichenfolge so, dass er korrekt analysiert?
InformationsquelleAutor der Frage KeyboardInterrupt | 2009-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Umgekehrte Schrägstriche sind nicht gültig escape-Zeichen für die URL-Komponente strings. Sie müssen URL-Kodieren Sie die Passwort-Teil des connect-string:
Wenn man sich die Implementierung der Klasse verwendet, in SQLAlchemy zu vertreten, Datenbank-Verbindungs-URLs (in
sqlalchemy/engine/url.py
), können Sie sehen, dass Sie verwenden die gleiche Methode, um zu entkommen Passwörter bei der Umwandlung der URL-Instanzen in Zeichenfolgen, und dass die parsing-code verwendet die komplementäreurllib.unquote_plus
extrahieren-Funktion das Kennwort aus der Verbindungszeichenfolge.InformationsquelleAutor der Antwort rcoder