Recently, I built an application using Django. I wanted to create a standalone script that used the My App’s model API to insert data into Database.
The Django Document says:
“If you’d rather not use manage.py, no problem. Just make sure mysiteandpollsare at the root level on the Python path (i.e., import mysiteandimport pollswork) and set theDJANGO_SETTINGS_MODULE environment variable tomysite.settings.”
I was little confused about those statements.
So what is PYTHONPATH? In general, it’s the collection of all searchable paths where python would search for modules that you might use in your programs.
Initially, I screwed up the environmental variables and this is the error that I got.
......self._wrapped = Settings(settings_module)
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 89, in __init__
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'LearnPython.settings' (Is it on sys.path?): No module named LearnPython.settings
So this is what I did:
1) Set the PYTHONPATH environment variable to point to the directory of your django app.
PYTHONPATH = “C:\path\to\myapp\”
this is the path under which you’ll have the models.py
2) set the DJANGO_SETTINGS_MODULE environmental variable. This is the settings module that your app will use to determine the database user,password , host etc.
In my case I set DJANGO_SETTINGS_MODULE = “myapp.settings”
To confirm that everything worked, after setting the environmental variables , I logged into a new command prompt ,
C:\Users\xxx>python Python 2.7.2 (default, Jun 12 2011, 14:24:46)..... 32 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> print os.environ['DJANGO_SETTINGS_MODULE'] cricketweet.settings >>> from models import Player >>>
So Now I can access the model classes from a stand alone app. Happy coding