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