Artikel ini membahas mengenai bagaimana cara membuat sendiri perintah yang bisa kita jalankan melalui file
manage.py
pada project berbasis Django. Berikut ini adalah poin-poin yang akan dibahas nanti :
- Sekilas Tentang Django Management Commands
- Membuat Django App (jika belum ada)
- Menambahkan Custom Command ke Django App
Sekilas Tentang Django Management Commands
Bila anda sudah terbiasa atau mungkin sedang belajar Django, pasti anda sering menjalankan perintah melalui file
manage.py
misalnya seperti menjalankan perintah
runserver
,
makemigrations
,
migrate
, atau
createsuperuser,
dan lain-lain
.
Nah, perintah-perintah yang telah disebutkan tadi merupakan contoh dari
Django Management Commands
yang sudah ada dari bawaan Django-nya. Lalu, pernahkah anda terpikirkan untuk membuat perintah sendiri yang bisa dijalankan melalui file
manage.py
? Jika anda menjawab ya, maka anda telah membaca artikel yang tepat. Hal ini dapat dimanfaatkan misal kita ingin menjalankan suatu proses diluar django, sebagai contoh misalnya jika kita ingin mengirimkan email ke subscriber, kita dapat membuat dan menjalankan commandnya melalui file
manage.py
. Oleh karena itu, kita dapat mengirim email tanpa harus menjalankan django, melainkan cukup melalui command line dengan file
manage.py
. Tentu masih banyak lagi penerapan django management command ini, silahkan lanjut ke halaman berikutnya untuk mulai masuk ke pembahasan inti.
Membuat Django App
Perintah-perintah yang ada di file
manage.py
dikelompokkan berdasarkan app-nya. Jadi anda dapat membuat command sendiri yang berkaitan dengan app tersebut, dalam praktik ini saya membuat sebuah app yang bernama "
pengguna
". Jika memang anda sudah memiliki app dalam project django, langsung saja ke halaman selanjutnya untuk melihat tahap berikutnya.
$ python manage.py startapp pengguna
Perintah di atas akan menghasilkan folder baru dengan nama sesuai dengan nama app yang kita buat yang di dalamnya sudah berisi file-file python untuk membuat app.
Tahap selanjutnya adalah mendaftarkan app tersebut ke project django kita dengan cara menambahkan nama app yang kita buat tadi ke dalam daftar
INSTALLED_APPS
di file
settings.py
.
Menambahkan Custom Command ke Django App
Nah, langkah selanjutnya adalah masuk ke folder app yang tadi dibuat. Kemudian buat sebuah direktori baru bernama
management
, lalu di dalam direktori management buatlah lagi direktori baru dengan nama
commands
. Jangan lupa untuk membuatkan file
__init__.py
pada setiap folder yang dibuat barusan. Nah, sekarang anda dapat membuat file python dengan nama bebas di dalam direktori
commands
tadi. Setiap file ini nantilah yang mewakili setiap perintah yang ingin kita tambahkan ketika menjalankan perintah melalui file
manage.py
.
Dalam contoh ini, saya akan mencoba untuk membuat perintah yang dapat menampilkan daftar admin yang ada dalam project django tersebut. Langkah yang perlu diambil selanjutnya adalah membuat file dengan nama show_admin.py . Kira-kira beginilah jadinya struktur direktori yang baru saja kita buat beserta file pythonnya.
Lalu pada file show_admin.py yang kita buat tadi, isi dengan script berikut :
Poin penting dari script di atas adalah pada method handle , yap, di method tersebutlah proses terjadi ketika perintah dieksekusi. Dalam contoh script di atas, saya mencoba untuk melakukan query user yang merupakan superuser / admin, kemudian hasil dari query tadi saya iterasi untuk ditampilkan usernamenya satu per satu.
Sekarang mari kita coba untuk cek apakah perintah tersebut sudah muncul di manage.py dengan cara menjalankan perintah berikut untuk melihat daftar perintah yang tersedia.
Nah, ternyata command yang saya tambahkan tadi telah muncul di daftar command manage.py . Kemudian kita coba untuk tes, apakah command yang baru saja kita buat bekerja dengan baik. Pastikan dalam project anda sudah ada user admin, jadi ketika perintah ini dirunning akan memunculkan daftar admin. Cara menjalankannya adalah sebagai berikut :
Dalam contoh ini, saya akan mencoba untuk membuat perintah yang dapat menampilkan daftar admin yang ada dalam project django tersebut. Langkah yang perlu diambil selanjutnya adalah membuat file dengan nama show_admin.py . Kira-kira beginilah jadinya struktur direktori yang baru saja kita buat beserta file pythonnya.
Lalu pada file show_admin.py yang kita buat tadi, isi dengan script berikut :
Poin penting dari script di atas adalah pada method handle , yap, di method tersebutlah proses terjadi ketika perintah dieksekusi. Dalam contoh script di atas, saya mencoba untuk melakukan query user yang merupakan superuser / admin, kemudian hasil dari query tadi saya iterasi untuk ditampilkan usernamenya satu per satu.
Sekarang mari kita coba untuk cek apakah perintah tersebut sudah muncul di manage.py dengan cara menjalankan perintah berikut untuk melihat daftar perintah yang tersedia.
$ python manage.py help
Maka akan muncul banyak sekali perintah yang tersedia yang dikelompokkan berdasarkan app-nya. Carilah perintah yang tadi anda buat, nama file python tadi adalah nama perintah anda misal seperti ini.
Nah, ternyata command yang saya tambahkan tadi telah muncul di daftar command manage.py . Kemudian kita coba untuk tes, apakah command yang baru saja kita buat bekerja dengan baik. Pastikan dalam project anda sudah ada user admin, jadi ketika perintah ini dirunning akan memunculkan daftar admin. Cara menjalankannya adalah sebagai berikut :
$ python manage.py show_admin
Berikut ini adalah hasilnya :
0 komentar