Подтвердить что ты не робот

Использование слоя базы данных Django за пределами Django?

У меня есть хорошая база данных, которую я создал в Django, и я хотел бы взаимодействовать с некоторыми скриптами python за пределами моего веб-сайта, поэтому мне любопытно, можно ли использовать API базы данных Django за пределами сайта Django, и если у него есть какая-либо информация о том, как это можно сделать? Google не дал много хитов для этого.

4b9b3361

Ответ 1

Вам просто нужно настроить параметры 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 DB как обычно.

Ответ 2

Обновить 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

Ответ 3

Для 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()

Ответ 5

Для django 1.5 on (поддерживаются несколько баз данных) также изменились настройки 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'
)

Ответ 6

Для использования Django ORM из других приложений вам необходимо:

1) export DJANGO_SETTINGS_MODULE=dproj.settings

2) Добавьте свою папку приложения Django в путь (вы можете сделать это в коде своего не-django-приложения):

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

3) Если вы используете SQLite, используйте полный путь к файлу db в settings.py:

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