Recently I had to write a tools which acts on data stored in a database managed by Django. As I didn’t want to implement the whole logic around the database I opted to use the Django ORM in my external tool.

In an earlier version I used:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

to configure Django with my settings.py. But recently I found a better solution in the excellent Django Documentation.

They use:

from django.conf import settings
settings.configure(DATABASE_ENGINE="mysql",
                   DATABASE_HOST="localhost",
                   DATABASE_NAME="my_database",
                   DATABASE_USER="user",
                   DATABASE_PASSWORD="password")

This is a much cleaner way where we don’t need to mess with the systems environment variable.