Wie funktioniert manage.py?

8

Ich habe gerade Django installiert und mache das Tutorial auf ihrer Website.

Ich befolge ihre Anweisungen in der Befehlszeile und sie arbeiten, aber ich frage mich warum?

Zum Beispiel können Sie auf den Befehl 'manage.py startapp xyz' zugreifen und es würde ein Paket erstellen, aber wenn ich in manage.py nachschaue, enthält es nur den folgenden Code (hinzugefügt von django, habe ich nicht berührt manage.py)

%Vor%

Ich sehe keine Methode für startapp in manage.py oder anderswo. Ich bin mir nicht sicher, ob dies djangospezifisch ist oder ob es eine grundlegende Lücke in meinem Python-Wissen gibt. Danke.

    
user856358 19.04.2013, 14:00
quelle

1 Antwort

10

Sie müssen im django.core.management -Paket nachsehen; Die Funktion execute_from_command_line() akzeptiert die Befehlszeile sys.argv Parameter und nimmt es von dort.

Wenn Sie manage.py startapp xyz in der Befehlszeile eingeben, wird sys.argv auf ['manage.py', 'startapp', 'xyz'] gesetzt.

Diese werden an eine ManagementUtility -Instanz , die eine Methode .execute() hat, um das zu tun tatsächliches Parsen.

Das gesamte Paket django.core.management ist modular; Das .commands Unterpaket enthält die verschiedenen Standardbefehle für manage.py . Werkzeug. django.core.management.commands.startapp behandelt beispielsweise den Unterbefehl startapp .

    
Martijn Pieters 19.04.2013, 14:03
quelle

Tags und Links