Development Tip

Django ORM을 독립형으로 사용

yourdevel 2020. 12. 31. 23:03
반응형

Django ORM을 독립형으로 사용


중복 가능성 :
Django의 일부만 사용합니까?
Django의 DB 부분 만 사용

Django ORM을 독립형으로 사용하고 싶습니다. 한 시간 동안 Google을 검색했지만 여전히 몇 가지 질문이 남아 있습니다.

  • setting.py, / myApp / 디렉토리 및 modules.py 파일을 사용하여 Python 프로젝트를 설정해야합니까?
  • 테이블과 관계를 자동으로 설정하도록 새로 models.py만들고 실행할 syncdb수 있습니까? 아니면 기존 Django 프로젝트의 모델 만 사용할 수 있습니까?
  • 에 관한 질문이 많은 것 같습니다 PYTHONPATH. 기존 모델을 호출하지 않는 경우 이것이 필요합니까?

가장 쉬운 방법은 누군가가 기본 템플릿이나 프로세스의 연습을 게시하여 파일의 구성을 명확히하는 것입니다. 예 :

db/
   __init__.py
   settings.py
   myScript.py
orm/
   __init__.py
   models.py

기본 필수 사항 :

# settings.py
from django.conf import settings

settings.configure(
     DATABASE_ENGINE   = "postgresql_psycopg2",
     DATABASE_HOST     = "localhost",
     DATABASE_NAME     = "dbName",
     DATABASE_USER     = "user",
     DATABASE_PASSWORD = "pass",
     DATABASE_PORT     = "5432"
)

# orm/models.py
# ...

# myScript.py
# import models..

다음과 같은 것을 실행해야하는지 여부 : django-admin.py inspectdb...

(오, 명령 줄 인수와 관련하여 변경된 사항이 있으면 Windows를 실행하고 있습니다.)


아 그래 나는 그것을 알아 냈고 같은 일을 시도하는 모든 사람을 위해 솔루션을 게시 할 것입니다.

이 솔루션은 새 모델을 작성하려고한다고 가정합니다.

먼저 파일을 저장할 새 폴더를 만듭니다. 이것을 "standAlone"이라고 부를 것입니다. "standAlone"내에서 다음 파일을 만듭니다.

__init__.py
myScript.py
settings.py

분명히 "myScript.py"는 무엇이든 이름을 지정할 수 있습니다.

다음으로 모델에 대한 디렉토리를 만듭니다.

모델 디렉토리의 이름을 "myApp"으로 지정하지만 이것이 프로젝트 내에서 일반적인 Django 애플리케이션이라는 것을 인식하고 작성중인 모델 컬렉션에 적절하게 이름을 지정합니다.

이 디렉토리 내에 2 개의 파일을 만듭니다.

__init__.py
models.py

기존 Django 프로젝트에서 manage.py 사본이 필요하거나 Django 설치 경로에서 사본을 가져올 수 있습니다.

django\conf\project_template\manage.py

manage.py를 / standAlone 디렉토리에 복사하십시오. 이제 다음과 같은 구조가 있어야합니다.

\standAlone
    __init__.py
    myScript.py
    manage.py
    settings.py
\myApp
    __init__.py
    models.py

myScript.py 파일에 다음을 추가합니다.

# settings.py
from django.conf import settings

settings.configure(
    DATABASE_ENGINE    = "postgresql_psycopg2",
    DATABASE_NAME      = "myDatabase",
    DATABASE_USER      = "myUsername",
    DATABASE_PASSWORD  = "myPassword",
    DATABASE_HOST      = "localhost",
    DATABASE_PORT      = "5432",
    INSTALLED_APPS     = ("myApp")
)

from django.db import models
from myApp.models import *

다음을 settings.py 파일에 추가하십시오.

    DATABASE_ENGINE    = "postgresql_psycopg2"
    DATABASE_NAME      = "myDatabase"
    DATABASE_USER      = "myUsername"
    DATABASE_PASSWORD  = "myPassword"
    DATABASE_HOST      = "localhost"
    DATABASE_PORT      = "5432",
    INSTALLED_APPS     = ("myApp")

마지막으로 myApp / models.py :

# myApp/models.py
from django.db import models

class MyModel(models.Model):
     field = models.CharField(max_length=255)

그리고 그게 다야. 이제 Django가 데이터베이스를 관리하도록하려면 명령 프롬프트에서 / standalone 디렉터리로 이동하고 다음을 실행합니다.

manage.py sql MyApp

참조 URL : https://stackoverflow.com/questions/937742/use-django-orm-as-standalone

반응형