[PYTHON] Führen Sie das Skript mit dem Befehl admin von Django aus

Eine benutzerdefinierte Befehlsklasse, mit der Sie Python-Skripte in der Django-Umgebung über Django-Verwaltungsbefehle ausführen können.

Wenn eine Ausnahme abgefangen wird, wird eine Stapelverfolgung an den Logger gesendet und der Statuscode 1 zurückgegeben.

Ich benutze es so.

$ python manage.py script do_something.py && do_next || else_do

app/management/commands/script.py


# -*- coding: utf-8


import sys
import logging

from django.core.management.base import LabelCommand, CommandError


logger = logging.getLogger(__name__)


class Command(LabelCommand):
    help = u'Executes the specified script file in current context.'
    args = u'[file]'
    label = u'script file'

    # Prevent to validate installed models.
    requires_model_validation = False

    def handle_label(self, label, **options):
        try:
            locals_ = {u'__name__': u'__main__'}
            globals_ = {}
            execfile(label, locals_, globals_)
        except Exception:
            logger.exception(u'Got an error in executing %s.' % label)
            raise CommandError

Recommended Posts

Führen Sie das Skript mit dem Befehl admin von Django aus
Verwendung von ManyToManyField mit Djangos Admin
Kompilieren Sie Rust und führen Sie es mit einem einzigen Befehl aus
Führen Sie Python mit VBA aus
Führen Sie prepDE.py mit python3 aus
Führen Sie Blender mit Python aus
Kontrollieren Sie Skripte mit Ausnahmen
Führen Sie iperf mit Python aus
Führen Sie Python mit PyCharm aus (Windows)
Berühre Flask + laufe mit Heroku
Führen Sie Python mit CloudFlash aus (arm926ej-s)
Alternative zu Djangos Befehl dumpdata
Um gym_torcs mit ubutnu16 auszuführen
Einzeilige Ergänzung mit verschiedenen Skripten
Führen Sie den Unix-Befehl auf Python aus
Führen Sie Label mit tkinter [Python] aus.
Führen Sie Apache-Spark auf IPython Notebook aus
Ich habe den Verwaltungsbildschirm von Django verglichen
Mit dem GPG-Befehl verschlüsseln / entschlüsseln