Использование Моделей и Форм за пределами Django?

Действительно ли возможно выполнить файл представления с помощью Django Model и Формы за пределами среды Django?

8
задан Dominic Rodger 27 April 2010 в 14:27
поделиться

1 ответ

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

Чтобы использовать ORM, вам придется настроить окружение django в вашем скрипте. Просмотр файла "manage.py" показывает, как это сделать:

from django.core.management import setup_environ
import settings
setup_environ(settings)

Теперь вы можете вызывать любое представление, какое захотите:

from myapp.views import some_view

some_view(...)

Помните, что по правилам функции представления должны принимать объект HttpRequest в качестве первого параметра и возвращать объект HttpResponse. Вы можете создать объект запроса самостоятельно:

from django.http import HttpRequest

result = some_view(HttpRequest(), ...)

Но если вы действительно не заинтересованы в использовании объектов HttpResponse или HttpRequest, возможно, вам просто не следует называть свои методы "представлениями". Может быть, это "утилиты" или что-то еще. Ничего из этого не навязывается Django, но это хорошая форма - следовать подобным соглашениям, чтобы другие программисты могли читать ваш код.

Правка: 2010-05-24: Исправлено "setup_environ" (ранее ошибочно было "execute_manager"). Reference.

11
ответ дан 5 December 2019 в 14:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: