Django-bos merupakan implementasi dari ide-ide yang diuraikan dalam posting blog saya di perintah manajemen Django. Dengan itu, Anda dapat menentukan perintah dalam aplikasi individu dan kemudian menjalankannya menggunakan djboss antarmuka baris perintah.
Instalasi Django-bos
Saat ini, instalasi dilakukan melalui easy_install Django-bos atau pip menginstal Django-bos. Satu-satunya prasyarat yang argparse, yang instalasi ditangani oleh setuptools, dan Django, yang Anda harus telah menginstal sekarang pula.
Penulisan Perintah
Perintah didefinisikan sebagai contoh djboss.commands.Command, hadir dalam perintah submodule dalam sebuah aplikasi diinstal. Sebagai contoh, mengambil tata letak aplikasi berikut:
echoapp /
| - __init__.py
| - Commands.py
`- Models.py
File commands.py adalah submodule yang dapat diimpor sebagai echoapp.commands.
Dengan dekorator
Berikut ini adalah contoh lengkap file commands.py valid:
dari djboss.commands impor *
command
def hello (args):
& Nbsp; "" "Mencetak klise ke konsol." ""
& Nbsp; print "Hello, World!"
Contoh ini menggunakan dekoratorcommand untuk menyatakan bahwa fungsi adalah perintah Django-bos. Anda dapat menambahkan argumen untuk perintah juga; hanya menggunakan dekoratorargument (pastikan mereka datang setelahcommand yang):
command
argument ('- n', '--no-baris', action = 'store_true',
& Nbsp; bantuan = "Jangan menambahkan sebuah baris baru mengikuti.")
def hello (args):
& Nbsp; "" "Mencetak klise ke konsol." ""
& Nbsp; jika args.no_newline:
& Nbsp; sys impor
& Nbsp; sys.stdout.write ("Hello, World")
& Nbsp; yang lain:
& Nbsp; print "Hello, World!"
Theargument dekorator menerima argparse.ArgumentParser.add_argument apapun () tidak; berkonsultasi dokumentasi argparse untuk informasi lebih lanjut.
Anda juga dapat membubuhi keterangan perintah dengan memberikan argumen kata kunci untukcommand:
command (name = "sesuatu", deskripsi = "Apakah sesuatu.")
def do_something (args):
& Nbsp; "" ". Lakukan sesuatu" ""
& Nbsp; print "sesuatu yang telah dilakukan."
Dalam hal ini, perintah akan disebut "sesuatu" bukan otomatis dihasilkan "do-sesuatu", dan deskripsi akan berbeda dari docstring nya. Untuk informasi lebih lanjut tentang apa yang dapat dilalui di sini, konsultasikan dokumentasi argparse.ArgumentParser.
Tanpa dekorator
API ini sangat mirip tanpa dekorator. Kelas Perintah ini digunakan untuk membungkus fungsi, dan Anda dapat memberikan argumen kata kunci saat menjalankan sebagai dengancommand:
def echo (args):
& Nbsp; ...
gema = Command (echo, nama = '...', deskripsi = '...')
Menambahkan argumen menggunakan () metode Command.add_argument, yang hanya mengacu pada yang dihasilkan sub-parser & rsquo; s add_argument () metode:
def echo (args):
& Nbsp; ...
gema = Command (echo, nama = '...', deskripsi = '...')
echo.add_argument ('- n', '--no-baris', ...)
echo.add_argument ('kata', nargs = '*')
Menjalankan Perintah
Perintah dijalankan melalui djboss antarmuka baris perintah. Untuk ini untuk menjalankan dengan benar, Anda memerlukan salah satu dari dua hal:
* Sebuah variabel lingkungan DJANGO_SETTINGS_MODULE yang mengacu valid, modul Python diimpor.
* A valid, pengaturan diimpor modul di direktori kerja saat ini.
Setelah salah satu dari mereka ditutupi, Anda dapat menjalankannya:
djboss --help
Penggunaan: djboss [h] [v] [TINGKAT l] COMMAND ...
Menjalankan perintah manajemen Django-bos.
argumen opsional:
& Nbsp; h, --help tampilkan pesan bantuan ini dan keluar
& Nbsp; -v, --version acara program nomor versi dan keluar
& Nbsp; TINGKAT l, --log-level TINGKAT
& Nbsp; Pilih tingkat log dari DEBUG, INFO, WARN (default)
& Nbsp; atau ERROR.
perintah:
& Nbsp; COMMAND
& Nbsp; gema Echo argumen kembali ke konsol.
& Nbsp; halo Cetak klise ke konsol.
Untuk menemukan sub-perintah, djboss pertama penemuan dan impor pengaturan Django Anda.
Variabel lingkungan DJANGO_SETTINGS_MODULE diutamakan, tetapi jika tidak ditentukan, djboss akan mencari `modul settings` di direktori saat ini. Perintah harus didefinisikan dalam `submodule commands` dari setiap aplikasi. djboss akan mencari setiap INSTALLED_APPS Anda untuk perintah manajemen.
Setiap subcommand mendapat pilihan --help juga:
djboss gema --help
Penggunaan: djboss gema [h] [-n] [kata [kata ...]]
Echo argumen kembali ke konsol.
argumen posisi:
& Nbsp; kata
argumen opsional:
& Nbsp; h, --help tampilkan pesan bantuan ini dan keluar
& Nbsp; n, --no-newline Jangan mencetak baris baru setelah itu.
Dan kemudian Anda dapat menjalankannya:
djboss echo beberapa kata-kata di sini
beberapa kata di sini
Lebih sama:
djboss halo --help
Penggunaan: djboss halo [h]
Cetak klise ke konsol.
argumen opsional:
& Nbsp; h, --help tampilkan pesan bantuan ini dan keluar
Dan akhirnya:
djboss halo
Hello, World
Persyaratan :
- Django
- Python
Komentar tidak ditemukan