Django: Как я могу использовать классы модели для взаимодействия с моей базой данных извне Django?

Я бы хотел написать сценарий, который взаимодействует с моей БД, используя модель приложения Django. Тем не менее, я хотел бы иметь возможность запускать этот скрипт из командной строки или через cron. Что мне нужно для импорта, чтобы это разрешить?

3 Solutions collect form web for “Django: Как я могу использовать классы модели для взаимодействия с моей базой данных извне Django?”

Вам необходимо настроить переменные среды Django. Они рассказывают Python, где находится ваш проект, и каково имя модуля настроек (имя проекта в модуле настроек является необязательным):

import os os.environ['PYTHONPATH'] = '/path/to/myproject' os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' 

Теперь вы должны иметь доступ к моделям:

 from myproject.models import MyModel all_my_models = MyModel.objects.all() 

Предпочтительным образом следует добавить пользовательскую команду, а затем запустить ее как любую другую команду django-admin (не путать с django.contrib.admin ):

 ./manage.py mycustomcommand --customarg 

Установка DJANGO_SETTINGS_MODULE должна использоваться только тогда, когда пользовательская команда невозможна.

В зависимости от ваших конкретных потребностей расширение django-команд может сэкономить вам немного времени. Чтобы запускать любой скрипт как есть, не возиться с переменными окружения, просто введите:

 ./manage.py runscript path/to/my/script.py 

У django-command-extensions также есть команды для автоматизации скриптов как заданий cron, о чем вы упомянули, что вы хотели бы сделать.

Если вы больше похожи на людей с орехами и болтами, вы можете ознакомиться с этим очень подробным сообщением о том, как сделать «автономные» сценарии django запущенными с заданиями cron и еще много чего.

  • получение понедельника, 5 июня 2016 года, а не 5 июня 2016 года с использованием DateTimeField
  • Django / python проверяет JSON
  • Как отделить мои модели от django?
  • Получать подсчет нескольких отфильтрованных подзапросов в шаблоне
  • Можно ли передать словарь с посторонними элементами в метод Django object.create?
  • добавление одного и того же объекта дважды в ManyToManyField
  • Django аннотирует запрос на определенное значение атрибута реляционной модели
  • История Django для пользовательской панели инструментов
  • Python - лучший язык программирования в мире.