如何在django系统外使用django的ORM
2016-05-26 本文已影响1282人
治部少辅
有时候我们希望在一个新的独立脚本里面使用django的orm系统。例如我曾在一个django项目里面,用tornado单独实现了其中的IM(即时通信)功能。如果直接import django的models的话,会出现以下错误
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
显然,这里的错误信息提示我们django的配置有问题,这意味着我们需要手动在新的脚本里面指定django的设置文件————也就是setting.py文件。做到这一步很简单,只需要在脚本的开头加上如下的代码:
import sys
from django.core.wsgi import get_wsgi_application
sys.path.extend(['Path_to_your_django_project',])
os.environ.setdefault("DJANGO_SETTINGS_MODULE","Name_Of_Your_Django_Project.settings")
application = get_wsgi_application()
如此之后应该就一切工作正常了。
The English version can be found on my personal blog: How to use django models out of django project