Django-αφεντικό είναι μια εφαρμογή των ιδεών που περιγράφονται στο blog post μου σχετικά με τις εντολές διαχείρισής Django. Με αυτό, μπορείτε να καθορίσετε τις εντολές σε επιμέρους εφαρμογές και στη συνέχεια εκτελέστε τους χρησιμοποιώντας την djboss διεπαφή γραμμής εντολών.
Εγκατάσταση Django-αφεντικό
Προς το παρόν, η εγκατάσταση γίνεται μέσω easy_install Django-αφεντικό ή PIP εγκατάσταση Django-αφεντικό. Οι μόνες προϋποθέσεις είναι argparse, του οποίου η εγκατάσταση γίνεται από setuptools, και Django, οι οποίες θα πρέπει να έχουν εγκατασταθεί από τώρα έτσι κι αλλιώς.
Συγγραφή Εντολές
Οι εντολές ορίζονται ως περιπτώσεις djboss.commands.Command, που υπάρχουν σε ένα υποενότητα εντολές μέσα σε μια εγκατεστημένη εφαρμογή. Για παράδειγμα, να λάβει την ακόλουθη διάταξη app:
echoapp /
| - __init__.py
| - Commands.py
`- Models.py
Το commands.py αρχείο είναι μια υποενότητα που μπορούν να εισαχθούν ως echoapp.commands.
Με Διακοσμητές
Το παρακάτω είναι ένα πλήρες παράδειγμα ενός έγκυρου αρχείου commands.py:
από djboss.commands εισαγωγή *
command
def γεια (args):
& Nbsp? "" "Εκτύπωση κλισέ στην κονσόλα." ""
& Nbsp? Εκτύπωσης "Hello, World!"
Αυτό το παράδειγμα χρησιμοποιεί το διακοσμητήcommand να δηλώσει ότι η λειτουργία είναι μια εντολή Django-αφεντικό. Μπορείτε να προσθέσετε παραμέτρους στις εντολές πάρα πολύ? απλά χρησιμοποιήστε το διακοσμητήargument (βεβαιωθείτε ότι έρχονται μετά τηνcommand):
command
argument ('- n', '--no-αλλαγή γραμμής », δράση =« store_true »,
& Nbsp? Βοήθεια = "Μην προσαρτήσει ένα ουραίο αλλαγή γραμμής.")
def γεια (args):
& Nbsp? "" "Εκτύπωση κλισέ στην κονσόλα." ""
& Nbsp? Αν args.no_newline:
& Nbsp? Sys εισαγωγής
& Nbsp? Sys.stdout.write ("! Hello, World")
& Nbsp? Αλλού:
& Nbsp? Εκτύπωσης "Hello, World!"
Ο διακοσμητήςargument δέχεται ό, τι argparse.ArgumentParser.add_argument () κάνει? συμβουλευτείτε τις argparse docs για περισσότερες πληροφορίες.
Μπορείτε επίσης να σχολιάσετε εντολές δίνοντας επιχειρήματα λέξη-κλειδί για ναcommand:
command (name = "κάτι", description = "Μήπως κάτι.")
def do_something (args):
& Nbsp? "" ". Κάνε κάτι" ""
& Nbsp? Εκτύπωσης "κάτι έχει γίνει."
Σε αυτή την περίπτωση, η εντολή θα ονομάζεται "κάτι" αντί του auto-δημιουργούνται «κάτι κάνει-», και η περιγραφή του θα διαφέρουν από docstring του. Για περισσότερες πληροφορίες σχετικά με το τι μπορεί να περάσει εδώ, συμβουλευτείτε τις docs argparse.ArgumentParser.
Χωρίς Διακοσμητές
Το API είναι πολύ παρόμοια, χωρίς διακοσμητές. Η τάξη εντολή χρησιμοποιείται για να τυλίξει τις λειτουργίες, και μπορείτε να δώσετε επιχειρήματα λέξη-κλειδί, όταν επικαλούνται και μεcommand:
def echo (args):
& Nbsp? ...
echo = Command (ηχώ, name = "...", description = "...")
Προσθέτοντας επιχειρήματα χρησιμοποιεί τη μέθοδο Command.add_argument (), η οποία είναι απλά μια αναφορά στο δημιουργείται υπο-parser & rsquo? S add_argument () μέθοδος:
def echo (args):
& Nbsp? ...
echo = Command (ηχώ, name = "...", description = "...")
echo.add_argument ('- n', '--no-αλλαγή γραμμής », ...)
echo.add_argument («λέξεις», nargs = '*')
Εκτέλεση εντολών
Οι εντολές εκτελούνται μέσω της djboss διασύνδεση γραμμής εντολών. Για να λειτουργήσει σωστά, θα πρέπει να έχετε ένα από τα δύο πράγματα:
* Μια μεταβλητή περιβάλλοντος DJANGO_SETTINGS_MODULE που αναφέρεται σε μια έγκυρη, εισαχθεί ως μονάδα Python.
* Ένα έγκυρο, εισάγονται ρυθμίσεις της μονάδας στον τρέχοντα κατάλογο εργασίας.
Μόλις μία από αυτές που καλύπτεται, μπορείτε να το εκτελέσετε:
djboss --help
Χρήση: djboss [-h] [-v] [-l ΕΠΙΠΕΔΟ] ΕΝΤΟΛΗ ...
Εκτελέστε τις εντολές διαχείρισής Django-αφεντικό.
προαιρετικά επιχειρήματα:
& Nbsp? -h, --help Εμφανιστεί αυτό το μήνυμα βοήθειας και έξοδος
& Nbsp? -v, Τον αριθμό έκδοσης --version πρόγραμμα επίδειξης και εξόδου
& Nbsp? -l ΕΠΙΠΕΔΟ, --log επίπεδο ΕΠΙΠΕΔΟ
& Nbsp? Επιλέξτε ένα επίπεδο καταγραφής από το DEBUG, INFO, προειδοποιούν (προεπιλογή)
& Nbsp? Είτε σε λάθος.
εντολές:
& Nbsp? ΕΝΤΟΛΗ
& Nbsp? Ηχώ Ηχώ τα επιχειρήματα πίσω στην κονσόλα.
& Nbsp? Γεια Εκτύπωση κλισέ στην κονσόλα.
Για να ανακαλύψετε υπο-εντολές, djboss πρώτα ευρήματα και τις εισαγωγές ρυθμίσεις σας Django.
Η μεταβλητή DJANGO_SETTINGS_MODULE περιβάλλον υπερισχύει, αλλά αν απροσδιόριστη, djboss θα ψάξει για ένα `settings` μονάδα στον τρέχοντα κατάλογο. Οι εντολές πρέπει να ορίζονται σε ένα `commands` υποενότητα της κάθε εφαρμογής. djboss θα ψάξει κάθε ένα από INSTALLED_APPS σας για εντολές διαχείρισης.
Κάθε subcommand παίρνει μια επιλογή --help πάρα πολύ:
djboss ηχώ --help
Χρήση: djboss ηχώ [-h] [-n] [λόγια [λόγια ...]]
Επαναλάβω τα επιχειρήματα πίσω στην κονσόλα.
επιχειρήματα θέσης:
& Nbsp? Λέξεις
προαιρετικά επιχειρήματα:
& Nbsp? -h, --help Εμφανιστεί αυτό το μήνυμα βοήθειας και έξοδος
& Nbsp? -Ν, --no-Αλλαγή γραμμής Μην εκτυπώνετε μια νέα γραμμή στη συνέχεια.
Και τότε μπορείτε να εκτελέσετε:
djboss επαναλάβω μερικές λέξεις εδώ
μερικές λέξεις εδώ
Μια από τα ίδια:
djboss γεια --help
Χρήση: djboss γεια [-h]
Εκτυπώστε ένα κλισέ στην κονσόλα.
προαιρετικά επιχειρήματα:
& Nbsp? -h, --help Εμφανιστεί αυτό το μήνυμα βοήθειας και έξοδος
Και τέλος:
djboss γεια
Γεια σας, World
Απαιτήσεις :
- Django
- Python
Τα σχόλια δεν βρέθηκε