Für die Manipulation und Referenz des Django-Modells
python manage.py MY_COMMAND
Sie können dies tun, müssen es jedoch unter der Django-Anwendung als "/ app_name / management / command / MY_COMMAND.py" ablegen, "BaseCommand" erben und wie folgt vorgehen.
MY_COMMAND.py
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
def handle(self, *args, **options):
print 'hogefuga'
Auf diese Weise kann das obige manage.py MY_COMMAND
als Erweiterungsbefehl von Django verwendet werden.
Wenn Sie etwas mit der Django-App zu tun haben möchten, ist das oben Genannte in Ordnung.
Wenn Sie die DB von Django als Master für eine Art von Verwaltungsinformationen verwenden oder mithilfe der gespeicherten Ergebnisse eine Verknüpfung mit einem völlig anderen Programm herstellen möchten, möchten Sie diese von außen aufrufen, anstatt "manage.py" zu erweitern. ..
Da die Rückseite von Django nur SQLite oder MySQL ist, ist es in Ordnung, direkt darauf zuzugreifen und die Informationen zu lesen. Obwohl ich Model in Django definiert habe, verwende ich dieses ORM nicht. Dies ist also eine Möglichkeit, ORM von außen zu verwenden.
Sie können Djangos ORM auch von außen verwenden, indem Sie die folgenden Schritte ausführen.
settings.py
in der Umgebungsvariablen DJANGO_SETTINGS_MODULE
von Django an
--import von ModellenORM_test.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
def CallORMapper():
sys.path.append('/YOUR/DJANGO-PROJECT')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DJANGO-PROJECT.settings")
objects = MODEL_NAME.objects.all()
from DJANGOAPPNAME.models import MODEL_NAME
print objects
if __name__ == "__main__":
CallORMapper()
Recommended Posts