Using Django database layer outside of Django? Using Django database layer outside of Django? django django

Using Django database layer outside of Django?


You just need to configure the Django settings before you do any calls, including importing your models. Something like this:

from django.conf import settingssettings.configure(    DATABASE_ENGINE = 'postgresql_psycopg2',    DATABASE_NAME = 'db_name',    DATABASE_USER = 'db_user',    DATABASE_PASSWORD = 'db_pass',    DATABASE_HOST = 'localhost',    DATABASE_PORT = '5432',    TIME_ZONE = 'America/New_York',)

Again, be sure to run that code before running, e.g.:

from your_app.models import *

Then just use the DB API as usual.


For django 1.7, I used the following to get up and running.

settings.py:

from django.conf import settingssettings.configure(    DATABASES={        'default': {            'ENGINE': 'django.db.backends.postgresql_psycopg2',            'NAME': 'name',            'USER': 'usr',            'PASSWORD': 'secret',            'HOST': '127.0.0.1',            'PORT': '5432',        },    },    TIME_ZONE='America/Montreal',)

In the file containing the startup routine

import osimport djangoimport v10consolidator.settingsfrom myapp.models import *os.environ.setdefault(    "DJANGO_SETTINGS_MODULE",    "myapp.settings")django.setup()


Update setup_environ is to be removed in django 1.6

If you're able to import your settings.py file, then take a look at handy setup_environ command.

from django.core.management import setup_environfrom mysite import settingssetup_environ(settings)#here you can do everything you could in your project