Pour la manipulation et la référence du modèle Django,
python manage.py MY_COMMAND
Vous pouvez le faire, mais vous devez le mettre sous l'application Django en tant que / app_name / management / commands / MY_COMMAND.py
, hériter deBaseCommand
et faire comme suit.
MY_COMMAND.py
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
def handle(self, *args, **options):
print 'hogefuga'
En faisant cela, le manage.py MY_COMMAND
ci-dessus peut être utilisé comme une commande d'extension de Django.
Si vous souhaitez créer quelque chose en rapport avec l'application Django, ce qui précède est très bien.
Si vous utilisez la base de données de Django comme maître d'un certain type d'informations de gestion, ou si vous souhaitez utiliser les résultats stockés pour créer un lien avec un programme complètement différent, vous voulez l'appeler de l'extérieur au lieu d'étendre manage.py
. ..
Étant donné que l'arrière de Django est juste SQLite ou MySQL, il est possible d'y accéder directement et de lire les informations, mais même si j'ai défini Model dans Django, je n'utilise pas cet ORM. Donc, c'est une façon d'utiliser ORM de l'extérieur.
Vous pouvez également utiliser l'ORM de Django de l'extérieur en suivant les étapes ci-dessous.
--Spécifiez un projet Django dans sys.path
--Spécifiez le projet settings.py
dans la variable d'environnement de Django DJANGO_SETTINGS_MODULE
--importation de modèles
ORM_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