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

Использовать Django ORM как автономный

Возможные дубликаты:
Использовать только некоторые части Django?
Использование только части DB Django

Я хочу использовать Django ORM как автономный. Несмотря на час поиска Google, у меня все еще остались несколько вопросов:

  • Требуется ли мне настроить мой проект Python с помощью файла settings.py,/myApp/directory и modules.py?
  • Можно ли создать новый 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, если это ничего не изменит в отношении аргументов командной строки.).

4b9b3361

Ответ 1

А, я понял, что опубликую решения для тех, кто пытается сделать то же самое.

Это решение предполагает, что вы хотите создавать новые модели.

Сначала создайте новую папку для хранения ваших файлов. Мы назовем его "standAlone". Внутри "standAlone" создайте следующие файлы:

__init__.py
myScript.py
settings.py

Очевидно, что "myScript.py" можно назвать любым.

Затем создайте каталог для своих моделей.

Мы назовем наш каталог моделей "myApp", но поймем, что это нормальное приложение Django в рамках проекта, как таковое, соответствующим образом назовите его для коллекции моделей, которые вы пишете.

В этом каталоге создайте 2 файла:

__init__.py
models.py

Вам понадобится копия manage.py из существующего проекта Django или вы можете просто взять копию с установочного пути 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 управлял вашей базой данных, в командной строке перейдите в наш/автономный каталог и запустите:

manage.py sql MyApp