Add example of password URL encoding

Fixes: #4452
Change-Id: I6d6ef36c4a0aa1e7c064b8aed289a1ce79b5120f
(cherry picked from commit 77a932e321)
This commit is contained in:
Mike Bayer
2019-01-18 00:53:55 -05:00
parent 448665f208
commit 8552916168
+15 -3
View File
@@ -71,9 +71,21 @@ the database using all lowercase letters. If not specified, a "default" DBAPI
will be imported if available - this default is typically the most widely
known driver available for that backend.
As the URL is like any other URL, special characters such as those that
may be used in the password need to be URL encoded. Below is an example
of a URL that includes the password ``"kx%jj5/g"``::
postgresql+pg8000://dbuser:kx%25jj5%2Fg@pghost10/appdb
The encoding for the password can be generated using ``urllib``::
>>> import urllib.parse
>>> urllib.parse.quote_plus("kx%jj5/g")
'kx%25jj5%2Fg'
Examples for common connection styles follow below. For a full index of
detailed information on all included dialects as well as links to third-party dialects, see
:ref:`dialect_toplevel`.
detailed information on all included dialects as well as links to third-party
dialects, see :ref:`dialect_toplevel`.
PostgreSQL
----------
@@ -155,7 +167,7 @@ And for an absolute file path, the three slashes are followed by the absolute pa
#Unix/Mac - 4 initial slashes in total
engine = create_engine('sqlite:////absolute/path/to/foo.db')
#Windows
#Windows
engine = create_engine('sqlite:///C:\\path\\to\\foo.db')
#Windows alternative using raw string
engine = create_engine(r'sqlite:///C:\path\to\foo.db')