Verwenden von Modellen und Formen außerhalb von Django?

8

Ist es möglich, eine Ansichtsdatei mit Django Model and Form außerhalb der Django-Umgebung auszuführen?

    
RadiantHex 27.04.2010, 14:17
quelle

3 Antworten

11

Es ist möglich. Django ist ziemlich gut darin, gerade Python ohne viel Magie zu sein, also kann man normalerweise Dinge entkoppeln. Ansichten sind nur Funktionen und können von jedem anderen Python-Code aufgerufen werden.

Um das ORM zu verwenden, müssen Sie die django-Umgebung in Ihrem Skript einrichten. Wenn Sie auf eine Datei "manage.py" schauen, sehen Sie, wie Sie das tun:

%Vor%

Jetzt können Sie die gewünschte Ansicht aufrufen:

%Vor%

Beachten Sie, dass die Konvention für View-Funktionen die Verwendung eines HttpRequest-Objekts als ersten Parameter und die Rückgabe eines HttpResponse-Objekts vorsieht. Sie könnten ein Anfrageobjekt selbst erstellen:

%Vor%

Aber wenn Sie wirklich nicht daran interessiert sind, HttpResponse- oder HttpRequest-Objekte zu verwenden, sollten Sie Ihre Methoden vielleicht nicht einfach "Ansichten" nennen. Vielleicht sind sie "Utils" oder etwas anderes. Nichts davon wird von Django durchgesetzt, aber es ist gut, einer Konvention wie dieser zu folgen, damit andere Programmierer Ihren Code lesen können.

Bearbeiten: 2010-05-24: Fixed "setup_environ" (irrtümlich hatte "execute_manager" zuvor). Referenz .

    
user85461 01.05.2010 13:26
quelle
1

In Django 1.6 können Sie einfach das Projektverzeichnis in den Pfad einfügen und dann die Umgebungsvariable DJANGO_SETTINGS_MODULE wie folgt einstellen:

%Vor%

Dann können Sie mit dem Import Ihrer Modelle beginnen.

    
joemar.ct 18.01.2014 12:35
quelle
0

In Django 1.7 musst du auch tun:

%Vor%

Andernfalls werden Sie eine AppRegistryNotReady Ausnahme treffen.

    
anhtran 25.07.2014 18:47
quelle

Tags und Links