You are on page 1of 4

9/27/21, 10:54 AM jacobian/dj-database-url: Use Database URLs in your Django Application.

jacobian / dj-database-url Public

Use Database URLs in your Django Application.

pypi.python.org/pypi/dj-database-url


BSD-2-Clause License


1.2k
stars

174
forks


Star
Watch

Code Issues 20 Pull requests 8 Actions Projects Wiki Secu


master

jacobian
Merge pull request #125 from giovanism/long_desc … on Dec 25, 2019
191

View code

README.rst

DJ-Database-URL
GITHUB ACTIONS SUCCESS

This simple Django utility allows you to utilize the


12factor inspired
DATABASE_URL
environment variable to configure your Django application.

The dj_database_url.config method returns a Django database connection


dictionary,
populated with all the data specified in your URL. There is
also a conn_max_age argument
to easily enable Django's connection pool.

If you'd rather not use an environment variable, you can pass a URL in directly
instead to
dj_database_url.parse .

Supported Databases
Support currently exists for PostgreSQL, PostGIS, MySQL, MySQL (GIS),
Oracle, Oracle (GIS),
Redshift, and SQLite.

https://github.com/jacobian/dj-database-url#id8 1/4
9/27/21, 10:54 AM jacobian/dj-database-url: Use Database URLs in your Django Application.

Installation
Installation is simple:

$ pip install dj-database-url

Usage
Configure your database in settings.py from DATABASE_URL :

import dj_database_url

DATABASES['default'] = dj_database_url.config(conn_max_age=600)

Provide a default:

DATABASES['default'] = dj_database_url.config(default='postgres://...')

Parse an arbitrary Database URL:

DATABASES['default'] = dj_database_url.parse('postgres://...', conn_max_age=600)

The conn_max_age attribute is the lifetime of a database connection in seconds


and is
available in Django 1.6+. If you do not set a value, it will default to 0
which is Django's
historical behavior of using a new database connection on each
request. Use None for
unlimited persistent connections.

URL schema

Django Backend URL

django.db.backends.postgresql [1] postgres://USER:PASSWORD@HOST:PORT/NA


[2]

django.contrib.gis.db.backends.postgis postgis://USER:PASSWORD@HOST:PORT/NAM

sql_server.pyodbc mssql://USER:PASSWORD@HOST:PORT/NAME

django.db.backends.mysql mysql://USER:PASSWORD@HOST:PORT/NAME

https://github.com/jacobian/dj-database-url#id8 2/4
9/27/21, 10:54 AM jacobian/dj-database-url: Use Database URLs in your Django Application.

Django Backend URL

django.contrib.gis.db.backends.mysql mysqlgis://USER:PASSWORD@HOST:PORT/NA

django.db.backends.sqlite3 sqlite:///PATH [3]

django.contrib.gis.db.backends.spatialite spatialite:///PATH [3]

django.db.backends.oracle oracle://USER:PASSWORD@HOST:PORT/NAME
[4]

django.contrib.gis.db.backends.oracle oraclegis://USER:PASSWORD@HOST:PORT/N

django_redshift_backend redshift://USER:PASSWORD@HOST:PORT/NA

[1] The django.db.backends.postgresql backend is named


django.db.backends.postgresql_psycopg2 in older releases. For
backwards
compatibility, the old name still works in newer versions. (The new name does
not work in older versions).

[2] With PostgreSQL, you can also use unix domain socket paths with
percent
encoding:
postgres://%2Fvar%2Flib%2Fpostgresql/dbname .

[3] (1, 2) SQLite connects to file based databases. The same URL format is used,
omitting
the hostname, and using the "file" portion as the filename of the
database.
This has the effect of four slashes being present for an absolute file
path:
sqlite:////full/path/to/your/database/file.sqlite .

[4] Note that when connecting to Oracle the URL isn't in the form you may know
from using other Oracle tools (like SQLPlus) i.e. user and password are separated
by : not by / . Also you can omit HOST and PORT
and provide a full DSN
string or TNS name in NAME part.

Releases


12
tags

P k
https://github.com/jacobian/dj-database-url#id8 3/4
9/27/21, 10:54 AM jacobian/dj-database-url: Use Database URLs in your Django Application.
Packages
No packages published

Used by 148k

+ 147,560

Contributors 47

+ 36 contributors

Languages

Python 100.0%

https://github.com/jacobian/dj-database-url#id8 4/4

You might also like