在Django之外使用Django数据库层?

我有一个很好的数据库,我在Django中创build,我想通过一些python脚本之外的我的网站的东西,所以我很好奇,如果有可能在Django之外使用Django数据库API网站,如果是的话,有没有人有任何可以做的信息? 谷歌并没有因此产生很多点击。

您只需在进行任何调用之前configurationDjango设置,包括导入模型。 像这样的东西:

from django.conf import settings settings.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', ) 

再次确定在运行之前运行该代码,例如:

 from your_app.models import * 

然后照常使用DB API。

更新 setup_environ将在django 1.6中被删除

如果你能够导入你的settings.py文件,那么看一下方便的setup_environ命令。

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

对于Django 1.7,我使用以下来启动和运行。

settings.py:

 from django.conf import settings settings.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', ) 

在包含启动例程的文件中

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

没有人提到最后一个选项:一个自定义的./manage.py子命令 。

对于django 1.5开启(支持多个数据库),DATABASE设置也改变了。 你需要修改以前的答案…

 settings.configure( DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'db_name', 'USER': 'db_usr', 'PASSWORD': 'db_pass', 'HOST': '', 'PORT': '', }, }, TIME_ZONE = 'Europe/Luxembourg' ) 

要从其他应用程序使用Django ORM,您需要:

1) export DJANGO_SETTINGS_MODULE=dproj.settings

2)将你的Django应用程序文件夹添加到path中(你可以在你的非Django应用程序的代码中完成):

 sys.path = sys.path + ['/path/to/your/app/'] 

3)如果使用SQLite,请在settings.py中使用db文件的完整path:

 DATABASE_NAME = '/path/to/your/app/base.db'