Django 외부에서 Django 데이터베이스 레이어를 사용합니까?
Django에서 만든 멋진 데이터베이스 가 있고 웹 사이트 외부 의 일부 Python 펼쳐보기 인터페이스하고 싶습니다 . Django 외부에서 Django 데이터베이스 API를 사용할 수 있는지 궁금합니다. 사이트, 어디에 있는지 누구든지 어떻게 할 수 있습니까? Google은 이에 대해 많은 히트를 기록하지 않습니다.
모델 가져 오기 전에 포함하여 호출을 수행하기 전에 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 *
그런 다음 이메일처럼 DB API를 사용하십시오.
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()
setup_environ 업데이트 는 장고 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
아무도 언급하지 않은 마지막 옵션 : 사용자 지정 ./manage.py
하위 명령 .
내가 사용하는 코드는 다음과 가변적입니다. your_project
장고 프로젝트 이름, yourApp
장고 앱 이름, any_model
모델 파일에서 사용할 모델 및 any_fild
데이터베이스에서 가져올 필드로 바꾸 십시오 .
from django.conf import settings
import django
from your_project.settings import DATABASES, INSTALLED_APPS
settings.configure(DATABASES=DATABASES, INSTALLED_APPS=INSTALLED_APPS)
django.setup()
from yourApp.models import *
print(any_model.objects.all()[0].any_fild)
(데이터베이스 데이터베이스가 지원됨) 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 앱 폴더를 경로에 추가합니다 (django 앱이 아닌 코드에서 수행 할 수 있음).
sys.path = sys.path + ['/path/to/your/app/']
3) SQLite를 사용하는 경우 settings.py에서 db 파일의 전체 경로를 사용하십시오.
DATABASE_NAME = '/path/to/your/app/base.db'
import os, sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir)))
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
from app.models import MyModel
Hai Hu 의 답변을 바탕으로 Django 1.10 및 1.11에서 테스트 한 작업 스크립트가 있습니다. Django의 기본 앱은 다른 많은 앱에 필요하기 때문에 먼저 가져옵니다.
import os
from django.conf import settings
from django.apps import apps
conf = {
'INSTALLED_APPS': [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'django.contrib.sessions',
'django.contrib.sitemaps',
'django.contrib.sites',
'django.contrib.staticfiles',
'<your_app>',
],
'DATABASES': {
'default': {
'ENGINE': os.environ.get('DB_ENGINE'),
'NAME': os.environ.get('DB_NAME'),
'USER': os.environ.get('DB_USER'),
'PASSWORD': os.environ.get('DB_PASSWORD'),
'HOST': os.environ.get('DB_HOST'),
'PORT': os.environ.get('DB_PORT'),
}
},
'TIME_ZONE': 'UTC'
}
settings.configure(**conf)
apps.populate(settings.INSTALLED_APPS)
<import your app models here>
참고 URL : https://stackoverflow.com/questions/2180415/using-django-database-layer-outside-of-django
'ProgramingTip' 카테고리의 다른 글
가 무엇이 무엇이였습니까? (0) | 2020.11.11 |
---|---|
현명한 gcc 경고 : 함수 반환 유형에 대한 유형 한정자 (0) | 2020.11.11 |
오류 : 'ASP.global_asax'유형이 두 DLL에 모두 있습니다. (0) | 2020.11.10 |
FCM 알림에서 주제를 만드는 방법 (0) | 2020.11.10 |
ostream을 사용하여 C ++에서 서명되지 않은 문자를 16 진수로 어떻게 인쇄합니까? (0) | 2020.11.10 |