Можно ли использовать модуль моделей Django только в моем проекте?

Я разрабатываю небольшое независимое приложение python, которое использует Celery. Я построил это с использованием платформы django, но мое приложение только для завершения. Это означает, что пользователям не нужно посещать мой сайт, и мое приложение создается только для того, чтобы получать очередь задач из сельдерея и выполнять операции над базой данных. Для выполнения операций с базой данных мне нужно использовать модули Django.

То, что я пытаюсь сделать, это удалить остальную часть моего приложения django и использовать ТОЛЬКО модули для сельдерея и django (включая зависимости, необходимые для их запуска).

Короче говоря, мое простое приложение celery будет запускать инструкции от моего брокера redis и выполнять операции в базе данных с использованием моделей django.

Возможно ли это сделать? Если да, то как?

Вот моя структура проекта:

myproject/ --manage.py --myproject/ ----celery.py ----models.py ----settings.py ----tasks.py ----urls.py ----wsgi.py 

Вот мои settings.py:

3 Solutions collect form web for “Можно ли использовать модуль моделей Django только в моем проекте?”

вам просто нужно

 env['DJANGO_SETTING_MODULE'] = 'myproject.settings' django.setup() 

(предполагая, что вы настраиваете базу данных и файл installed_apps в settings.py)

В настройках вашего проекта. Просто добавьте это при начале.

 import django import os sys.path.insert(0, your_project_path) # Ensure python can find your project os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' django.setup() 

Затем вы можете использовать django orm, не забудьте удалить промежуточное программное обеспечение, которое вам не нужно в настройках django.

У вас есть сценарий python, который требует некоторых задач сельдерея, и вам нужно Django ORM для взаимодействия с базами данных.

  1. Вы можете настроить проект django

  2. создайте приложение для своей цели, включите в settings.py и внутри своего приложения в models.py создайте необходимые модели. ref: Какие минимальные файлы мне нужно использовать django ORM

  3. Настройте среду для выполнения сельдерея. Т.е., redis server. интегрировать «djcelery» с проектом django. для целевого назначения сельдерея. вы можете использовать побочные эффекты сельдерея для периодических задач. или задержки. ref: http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

  4. Вы можете импортировать и использовать модели django, как обычно, в задачах сельдерея.

  5. Задачи сельдерея, которые вы можете использовать, используя

    я. celery -A tasks worker –loglevel = info

    II. сельдерей – задачи бить -l info. используйте биты, если вам нужны задачи, которые записываются для периодического выполнения.

  6. Если задачи должны выполняться асинхронно сразу или через промежуток времени, вы можете использовать task_name.delay () вызов задач внутри скрипта python с помощью delay (), я думаю, что для использования djcelery в вашем скрипте вам может понадобиться настроить django env внутри скрипта. просто сделайте django.setup ().

Я думаю, что это поможет вам решить вашу проблему.

Interesting Posts

Регулярное выражение Python для преобразования символов не-ascii в строке до ближайших эквивалентов ascii

Как импорт работает с Boost.Python изнутри файлов python

Пакет Python для Multi-Threaded Spider с поддержкой прокси-сервера?

Поведение округления Python 3.x

NLTK не смог найти stanford-postagger.jar! Установите переменную среды CLASSPATH

Как правильно передать scipy.sparse CSR-матрицу в функцию cython?

Распространение исполняемого zip-файла с __main__.py, как получить доступ к дополнительным данным?

Вычисление точности, повторения и F-оценки за один проход – python

py2exe MemoryLoadLibrary не удалось загрузить _ssl.pyd, Win7 <-> Win10

Есть ли скорость анализа или использование памяти для использования HDF5 для хранения больших массивов (вместо плоских двоичных файлов)?

Как открыть файл через python

Преобразование списка словарей в словарь

Открытый объект S3 в виде строки с Boto3

Выровнять математический текст LaTeX в текстовом поле matplotlib

Повторите образец данных панды произвольным фактором

Python - лучший язык программирования в мире.