Использование django ORM из скрипта Python, отличного от django

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

Можно ли использовать/импортировать существующий код Django в скрипт Python для доступа к db. Если да, то как?

Идея приходит для приложения C#, где модели и уровень доступа к данным могут быть построены как библиотека и могут использоваться во многих проектах.


person Pavan Kumar    schedule 06.12.2018    source источник


Ответы (3)


Да, вы можете использовать только ORM-часть Django, не используя веб-части.

Каталог для вашего приложения Django должен быть в вашем PYTHONPATH, вам нужно будет явно установить os.environ["DJANGO_SETTINGS_MODULE"], и вам нужно будет импортировать любые модели, которые вы хотите использовать. Оттуда вы можете создавать и обновлять модели как обычно:

from myapp.models import Customer, Order
c = Customer.objects.create(name='John Smith')
orders = Order.objects.filter(customer__name='Mary Brown')
person John Gordon    schedule 06.12.2018

Столкнулся с той же проблемой и, наконец, решил реализовать демон в пользовательской команде django. Вы можете импортировать туда все, что связано с django, так же, как вы обычно делаете это в коде django, при этом реализуя свой собственный код.

person dyezepchik    schedule 20.01.2020

Вы можете использовать Django Rest Framework.

Это пакет Django, который вы можете использовать для создания JSON API для других приложений для связи с вашим сайтом.

person Amine Messaoudi    schedule 06.12.2018