Wenn Sie die Stapelverarbeitung in Django durchführen möchten, schreiben Sie einen Verwaltungsbefehl.
Es gibt jedoch gelegentliche Stapelprozesse, die nicht ausreichen, um Verwaltungsbefehle zu schreiben. Ein Datenmigrationsskript, das aufgeschrieben wird. Ein Zählwerkzeug nur zur Fehlerbehebung.
In einem solchen Fall können Sie über eine Python-Datei außerhalb des Django-Projekts auf die Funktionen von Django zugreifen, ohne sie als Verwaltungsbefehl zu registrieren.
Halten Sie ein solches Skript bereit.
django_setup.py
"""
django_setup()Wenn Sie laufen, bietet Django Funktionen(Modellimport etc.)Wird verfügbar sein.
"""
import os
import sys
import django
def django_setup():
os.environ.setdefault(
'DJANGO_SETTINGS_MODULE', 'myapp.settings')
base_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
sys.path.append(os.path.join(base_dir, 'myproject'))
django.setup()
Alles, was Sie tun müssen, ist, das Django-Projekt root (wo ./manage.py ist) zu sys.path
hinzuzufügen und django.setup ()
auszuführen.
Wenn Sie Ihre eigene Konfigurationsdatei verwenden, geben Sie diese in der Umgebungsvariablen "DJANGO_SETTINGS_MODULE" an.
Ich folge __file__
mit os.path.dirname
, aber bitte ändere dies entsprechend deiner Umgebung.
Angenommen, base_dir ist das "einstufige" Verzeichnis des Django-Projekts (myproject).
In diesem Fall können Sie ein Abschreibungsskript usw. verwenden.
from django_setup import django_setup
def main():
from myapp.models import MyModel
for item in MyModel.objects.filter(...):
...
if __name__ == '__main__':
django_setup()
main()
Auf diese Weise können Sie auf die Funktionen in Ihrem Django-Projekt zugreifen.
Recommended Posts