可以在Django外部使用Django数据库层吗?
我在Django里创建了一个很不错的数据库,现在我想通过一些在网站外部的Python脚本来访问它。我想知道是否可以在Django网站之外使用Django的数据库接口,如果可以的话,有没有人能告诉我怎么做?我在谷歌上找了很多,但没有找到什么有用的信息。
12 个回答
11
更新 在django 1.6版本中,setup_environ将被移除。
如果你能成功导入你的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
19
对于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()
84
在你进行任何操作之前,包括导入你的模型,你需要先配置一下Django的设置。可以这样做:
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 *
然后就可以像往常一样使用数据库的API了。