Это возможно. 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»). Ссылка .