Catatan perev.: Artikel ini ditujukan terutama bagi mereka yang baru saja memilih kerangka kerja untuk pengembangan web. Pengembang Django berpengalaman tidak mungkin mempelajari hal baru.
Django digambarkan sebagai "kerangka kerja berbasis web untuk perfeksionis dengan tenggat waktu." Itu dibuat untuk pindah dari prototipe ke layanan siap pakai secepat mungkin.
Kerangka kerja ini akan membantu mengembangkan aplikasi turnkey CRUD. Django tidak harus menemukan kembali kemudi. Ini bekerja di luar kotak dan memungkinkan Anda untuk fokus pada logika bisnis dan produk untuk orang biasa.
Pro dari Django
Prinsip "semua termasuk" ("Baterai termasuk")
Ungkapan "semua termasuk" berarti bahwa sebagian besar alat untuk membuat aplikasi adalah bagian dari kerangka kerja, dan tidak datang di perpustakaan yang terpisah.
Django berisi sejumlah besar fungsi untuk menyelesaikan sebagian besar tugas pengembangan web. Berikut adalah beberapa fitur tingkat tinggi Django yang harus Anda cari secara terpisah jika Anda lebih suka kerangka kerja mikro:
- ORM
- Migrasi basis data
- Otentikasi pengguna
- Panel admin
- Bentuk
Struktur standar
Django sebagai kerangka kerja mendefinisikan struktur proyek. Ini membantu pengembang memahami di mana dan bagaimana menambahkan fungsionalitas baru.
Berkat struktur yang sama untuk semua proyek, jauh lebih mudah untuk menemukan solusi yang sudah jadi atau mendapatkan bantuan dari masyarakat. Sejumlah besar pengembang yang antusias akan membantu mengatasi tugas apa pun dengan lebih cepat.
Aplikasi Django
Aplikasi di Django memungkinkan Anda untuk membagi proyek menjadi beberapa bagian. Aplikasi diinstal dengan menambahkan ke pengaturan.INSTALLED_APPS . Pendekatan ini memudahkan untuk mengintegrasikan solusi turnkey.
Ratusan modul dan aplikasi universal akan sangat mempercepat pengembangan. Lihatlah daftar mereka di djangopackages.org .
Aman secara default
Django aman di luar kotak dan mencakup mekanisme untuk mencegah serangan umum seperti SQL injection (XSS) dan pemalsuan permintaan lintas situs (CSRF). Anda dapat membaca lebih lanjut tentang ini di manual keamanan resmi .
REST Framework untuk membuat API
Kerangka Kerja Django REST, sering disingkat menjadi "DRF," adalah perpustakaan untuk membangun API. Ini memiliki arsitektur modular dan dapat disesuaikan yang berfungsi baik untuk membuat API sederhana dan kompleks.
Dalam DRF, kebijakan otentikasi dan izin tersedia di luar kotak. Muncul dengan kelas dasar untuk operasi CRUD dan utilitas bawaan untuk menguji API yang dikembangkan.
Kerangka kerja GraphQL API
REST API besar seringkali membutuhkan sejumlah besar permintaan untuk mendapatkan semua data yang diperlukan. GraphQL adalah bahasa query yang membuat pertukaran data terkait lebih mudah. Baca lebih lanjut tentang konsep GraphQL dasar dalam dokumentasi resmi .
Graphene-Django memudahkan untuk menambahkan fungsionalitas yang sesuai untuk proyek Anda. Model, formulir, otentikasi, kebijakan izin, dan fungsionalitas Django lainnya dapat digunakan untuk membuat GraphQL API. Perpustakaan juga dilengkapi dengan utilitas untuk menguji hasilnya.
Kekurangan dari Django
Django orm
Django ORM hari ini jauh lebih rendah daripada SQLAlchemy terbaru.
Django ORM didasarkan pada templat Rekaman Aktif, yang lebih buruk daripada templat Satuan Kerja yang digunakan dalam SQLAlchemy. Dalam praktiknya, ini dinyatakan dalam kenyataan bahwa dalam model Django dapat "menyelamatkan" diri mereka sendiri, dan transaksi dinonaktifkan secara default. Anda dapat membaca lebih lanjut tentang ini di artikel "Hal-hal yang Saya Tidak Suka di Django" .
Django berkembang perlahan
Django adalah kerangka kerja yang besar dan monolitik. Ini memungkinkan komunitas untuk mengembangkan ratusan modul dan aplikasi generik, tetapi memperlambat kecepatan pengembangan Django itu sendiri. Selain itu, kerangka kerja harus mendukung kompatibilitas ke belakang, sehingga berkembang relatif lambat.
Intinya: haruskah saya memilih Django?
Meskipun Django ORM tidak sefleksibel SQLAlchemy, dan ekosistem besar modul dan aplikasi yang dapat digunakan kembali memperlambat pengembangan infrastruktur, jelas Django harus menjadi kandidat pertama untuk peran kerangka python.
Kerangka kerja ringan alternatif seperti Flask, meskipun memungkinkan Anda lebih bebas daripada Django dalam ekosistem dan konfigurasi, mungkin memerlukan waktu ekstra untuk mencari / membuat perpustakaan dan fungsi tambahan dalam jangka panjang.
Stabilitas Django dan komunitas di sekitarnya telah tumbuh ke ukuran yang tak terbayangkan sejak rilis pertama. Dokumentasi dan tutorial resmi tentang kerangka ini adalah beberapa yang terbaik dari jenisnya. Dan dengan setiap versi baru Django terus tumbuh peluang.