Apa itu Django?

Django adalah perangkat lunak yang dapat Anda gunakan untuk mengembangkan aplikasi web dengan cepat dan efisien. Sebagian besar aplikasi web memiliki beberapa fungsi umum, seperti autentikasi, pengambilan informasi dari basis data, dan manajemen cookie. Developer harus mengodekan fungsionalitas serupa ke setiap aplikasi web yang mereka tulis. Django memudahkan pekerjaan mereka dengan mengelompokkan fungsi yang berbeda ke dalam kumpulan besar modul yang dapat digunakan kembali dan disebut kerangka kerja aplikasi web. Developer menggunakan kerangka kerja web Django untuk mengatur dan menulis kode mereka secara lebih efisien dan mengurangi waktu pengembangan web secara signifikan.

Mengapa developer web memilih Django?

Ada beberapa kerangka kerja web di pasar. Django ditulis dalam bahasa Python, dan itu adalah salah satu di antara banyak kerangka kerja web Python. Namun, developer sering memilih kerangka kerja web Django dibanding yang lain untuk alasan berikut.

Kecepatan pengembangan

Kerangka kerja Django terorganisasi dengan baik dan mudah untuk diinstal dan belajar, sehingga Anda dapat memulai dalam beberapa jam. Desainer Django membuat kerangka kerja untuk segera menerapkan arsitektur web apa pun dalam kode. Hal ini mendukung perkembangan pesat dan desain yang bersih dan pragmatis. Anda dapat menulis kode hanya dalam beberapa baris karena Django menyediakan struktur siap pakai untuk beberapa tugas pengembangan web umum, seperti:

  • Autentikasi pengguna
  • Administrasi konten
  • Peta situs
  • RSS feed

Hemat biaya

Django adalah proyek Python gratis dan sumber terbuka dengan komunitas aktif yang meninjau dan mengelola perangkat lunak. Sebuah organisasi nonprofit bernama Django Software Foundation mempromosikan dan mendukung penggunaan dan pemeliharaan Django. Organisasi ini menjalankan pertemuan rutin, perkumpulan, dan acara komunitas yang mendorong developer lain untuk meninjau dan berkontribusi pada proyek Django. Hasilnya adalah kerangka kerja web berkualitas tinggi dan kaya fitur yang gratis untuk digunakan.

Populer

Ribuan proyek sumber terbuka dan situs profil tinggi menggunakan Django, seperti:

  • Instagram
  • Mozilla Firefox
  • Pinterest
  • National Geographic

Karena popularitasnya, kerangka kerja ini terus berkembang dan memiliki infrastruktur pendukung yang kuat. Sejumlah besar individu dan perusahaan menyediakan dukungan gratis dan berbayar untuk setiap tantangan pengembangan yang mungkin Anda hadapi ketika Anda menggunakan Django.

Bagaimana Django bekerja?

Setiap aplikasi web terbuat dari dua bagian: kode server dan kode klien. Klien atau pengunjung situs web memiliki browser. Ketika mereka mengetikkan URL ke browser, mereka mengirim permintaan ke mesin server web tempat aplikasi web berjalan. Server memproses permintaan dengan menggunakan basis data dan mengirimkan informasi kembali ke klien sebagai respons. Kode klien menampilkan informasi kepada pengunjung sebagai halaman web.

Django mengelola kode untuk sistem permintaan dan respons ini dengan menggunakan arsitektur Model-View-Template (MVT).

Model

Model Django bertindak sebagai antarmuka antara basis data dan kode server. Mereka adalah sumber definitif tunggal informasi tentang data Anda. Model data ini berisi bidang penting dan operasi yang Anda butuhkan untuk berinteraksi dengan basis data Anda. Model Django kemudian mengubah tabel basis data Anda menjadi kelas-kelas atau objek dalam kode Python. Ini disebut pemetaan objek-relasional.

Umumnya, setiap model memetakan ke tabel basis data tunggal dan memiliki atribut yang mewakili bidang basis data. Jika, misalnya, situs web Anda terdiri dari detail karyawan, ini dapat direpresentasikan sebagai:

  • Tabel karyawan dengan nama karyawan dan bidang alamat.
  • Model karyawan yang disebut Kelas Karyawan dengan dua atribut, atau bidang model, disebut Nama dan Alamat.

Tampilan

Tampilan Django memproses permintaan dengan menggunakan model. Anda dapat menulis fungsi tampilan untuk setiap jenis permintaan yang dapat dilakukan pengunjung situs web Anda ke situs web Anda. Fungsi tampilan dapat mengambil permintaan sebagai input dan mengembalikan respons, yang dapat berupa kode kesalahan, gambar, file, atau tipe data apa pun.

Django memiliki fitur pemetaan URL, atau pengirim URL, yang memetakan fungsi tampilan Anda ke URL Anda. Anda harus membuat file pemetaan URL di mana Anda menulis pola URL seperti yang ditunjukkan di bawah ini.

urlpatterns = [

path('employee/name', views.employee_name),

path('employee/<int:year>/', views.year_archive),

]

Misalnya, jika Anda ingin pengunjung situs web Anda melihat daftar semua karyawan Anda pada tahun tertentu, Anda perlu menyiapkan jalur URL employee/year number, dan Anda menulis fungsi tampilan Django yang sesuai year_archive. Saat pengunjung situs web Anda mengetik "yourwebsitename.com/employee/2020" ke dalam browser mereka, langkah-langkah berikut akan terjadi:

  1. Permintaan muncul di aplikasi web Anda.
  2. Kerangka kerja web Django mengambil nomor tahun dan melihat nama fungsi dari pemetaan URL.
  3. Ini menjalankan fungsi tampilan year_archive untuk tahun 2020.
  4. Year_archive menggunakan model karyawan untuk mendapatkan semua data karyawan dari basis data untuk tahun 2020.
  5. Kerangka kerja web Django mengirimkan data kembali sebagai respons.

Templat

Templat Django mengelola presentasi halaman web di browser. Karena sebagian besar halaman web berada di Hypertext Markup Language (HTML), Anda dapat menulis kode templat Django dalam gaya yang mirip dengan HTML. File templat berisi komponen-komponen tertentu:

  • Bagian statis dari output HTML akhir, misalnya gambar, tombol, dan header.
  • Sintaksis khusus yang menjelaskan cara menyisipkan konten atau data dinamis, yang berubah dengan setiap permintaan.

Komponen-komponen berikut membentuk sistem templat Django.

Bahasa templat

Bahasa templat adalah bahasa pemrograman yang Anda gunakan untuk menulis kode templat HTML. Django mendukung Django Template Language sendiri dan alternatif populer yang disebut Jinja2.

Mesin templat

Mesin templat memproses file templat dan menciptakan output HTML akhir. Ini termasuk data dari respons dalam output ini.

Misalnya, ketika pengunjung situs web Anda meminta informasi karyawan, templat Django Anda akan mengisi halaman web yang mereka lihat dengan header situs web Anda, tabel yang berisi nama dan alamat semua karyawan, dan tombol yang tertulis Next (Berikutnya).

Modul lain apa yang dapat Anda gunakan di Django?

Meskipun arsitektur Model-View-Template (MVT) mendefinisikan struktur dasar dari aplikasi apa pun, Django memiliki beberapa modul lain untuk meningkatkan situs web Anda. Kami memberikan beberapa contoh di bawah.

Formulir

Sebagian besar situs web memerlukan formulir, untuk tugas-tugas seperti pendaftaran dan pembayaran atau untuk mengumpulkan informasi dari pengunjung situs web. Django menyediakan banyak alat dan pustaka yang dapat anda gunakan untuk mengelola formulir situs web anda. Ini dapat menyederhanakan dan mengotomatiskan pemrosesan formulir dan dapat melakukannya dengan lebih aman daripada jika Anda menulis kode sendiri.

Django menangani pemrosesan formulir dalam tiga cara:

  1. Pembuatan formulir dengan menyiapkan dan merestrukturisasi data untuk ditampilkan
  2. Validasi formulir dengan memeriksa bentuk HTML di sisi klien
  3. Pemrosesan formulir dengan menerima data yang dikirimkan

Autentikasi pengguna

Situs web kontemporer harus mengautentikasi dan mengotorisasi pengguna. Autentikasi memverifikasi identitas pengguna, dan otorisasi memutuskan apa yang dapat dilakukan pengguna yang diautentikasi di situs. Django dapat mengelola autentikasi untuk berbagai penggunaan.

  • Akun pengguna
  • Izin dan tanda ya-atau-tidak yang memungkinkan pengguna melakukan tugas situs web tertentu
  • Grup beberapa akun pengguna dengan izin serupa
  • Sesi pengguna berbasis cookie

Ini juga menyediakan sistem hashing kata sandi yang dapat dikonfigurasi dan alat untuk membatasi konten dalam bentuk dan tampilan.

Administrasi situs

Situs administrasi Django membuatnya mudah untuk menyediakan halaman admin untuk situs anda. Administrator situs dapat menggunakan halaman untuk membuat, mengedit, atau melihat model data di situs Anda.

Apakah Django dogmatis?

Kami secara informal menyebut kerangka kerja web “opinionated” (dogmatis) ketika mereka memberlakukan proses pada developer web. Mereka memiliki pendapat atau cara yang benar di mana developer harus menyelesaikan tugas-tugas tertentu. Misalnya, kerangka kerja opini biasanya mendukung pengembangan yang efisien di industri tertentu dengan menyimpan dokumentasi mendetail untuk tugas aplikasi yang terkait dengan industri tersebut.

Di sisi lain, kerangka kerja yang tidak berpendapat memiliki batasan yang lebih sedikit tentang bagaimana Anda dapat mengintegrasikan komponen Model-View-Template (MVT) yang berbeda bersama-sama. Sementara mereka lebih fleksibel, mereka menyebabkan komplikasi dalam organisasi kode karena developer yang berbeda dapat menggunakan pendekatan bervariasi untuk tugas yang sama.

Django agak dogmatis. Django menyediakan berbagai komponen dan termasuk dokumentasi tentang bagaimana menangani berbagai jenis tugas pengembangan web. Developer dapat menggunakan arsitektur terpisah Django untuk memilih dari beragam opsi, dan bahkan menambahkan dukungan untuk opsi baru yang mereka butuhkan.

Apa itu keamanan Django?

Penjahat siber sering menargetkan aplikasi web untuk mengakses informasi masuk pengguna, data keuangan, dan informasi sensitif lainnya. Kerangka kerja web Django menawarkan beberapa fitur untuk melindungi aplikasi web Anda dan pengguna Anda. Anda menghindari banyak kesalahan keamanan umum dengan mengikuti praktik terbaik Django. Kami memberikan beberapa contoh di bawah.

Perlindungan pembuatan skrip lintas akun

Serangan pembuatan skrip lintas akun (XSS) terjadi ketika penjahat siber memasukkan kode berbahaya ke browser pengguna situs web Anda. Mereka dapat menyerang pengguna Anda dengan menipu aplikasi web Anda dengan beberapa cara, seperti:

  • Menyimpan skrip berbahaya dalam basis data Anda sehingga server secara tidak sengaja mengirimkan kode berbahaya dalam respons berikutnya.
  • Menipu pengguna Anda untuk mengeklik tautan yang menyebabkan kode klien berbahaya, bukan kode Anda, berjalan di browser pengguna.

Sebagai contoh, templat Django mungkin memiliki {{name}}, yang menunjukkan teks yang dimasukkan pengguna dalam bidang nama profil mereka. Penjahat siber membajak sesi dan mengubah nama menjadi kode seperti <script>alert('hello')</script>. Templat berubah menjadi {{<script>alert('hello')</script>}}.

Kode ini sekarang berjalan di browser pengguna Anda sehingga pesan teks "Hello" muncul di layar mereka. Meskipun contoh ini sederhana, Anda dapat melihat bagaimana penjahat siber dapat memasukkan skrip kompleks untuk mengontrol komputer pengguna Anda.

Django melindungi Anda dari serangan tersebut dengan secara otomatis meloloskan diri atau mengabaikan karakter tertentu seperti < dan >, yang menunjukkan kode berbahaya, dari input pengguna.

Perlindungan akses yang tidak sah

Serangan pemalsuan permintaan lintas situs (CSRF) terjadi ketika peretas mencuri kredensial pengguna Anda dan mengirim permintaan tidak sah ke aplikasi web Anda. Django memiliki perlindungan bawaan terhadap kebanyakan jenis serangan CSRF di modul Django CSRF. Perlindungan ini bekerja dengan mengirimkan nilai rahasia untuk setiap pengguna pada informasi masuk pertama mereka. 

Permintaan klien baru menyertakan nilai rahasia sebagai bukti bahwa klien adalah yang mereka klaim. Karena hanya browser pengguna resmi yang mengetahui nilai rahasia, Django dapat secara otomatis menolak permintaan jika permintaan itu datang dari beberapa mesin lain yang berpura-pura menjadi pengguna. Anda harus mengaktifkan pengaturan modul Django CSRF agar dapat bekerja.

Perlindungan injeksi SQL

Penjahat siber menggunakan injeksi SQL untuk memasukkan kode SQL ke basis data Anda dengan menggunakan permintaan HTTP seperti POST. Kode berbahaya dapat mencuri atau menghapus data asli Anda. Django memecahkan masalah ini dalam desain itu sendiri. Data yang dikirim pengguna, yang disebut parameter, disimpan terpisah dari kueri basis data hingga mencapai lapisan model. Model Django kemudian dapat keluar dari karakter berbahaya ketika sedang membuat kode kueri.

Perlindungan karena dukungan masyarakat

Perlindungan di Django melampaui fitur keamanan bawaannya. Karena Django adalah sumber terbuka, banyak developer berpengalaman menggunakan dan meninjau modul Django. Pengujian menyeluruh meningkatkan keandalan kode Django dan mencegah kerentanan keamanan yang tidak disengaja tertinggal.

Apa itu skalabilitas Django?

Skalabilitas, dalam pengembangan situs web, mengacu pada kemampuan situs web untuk menangani beberapa permintaan klien secara bersamaan. Proyek Django sangat bisa diskalakan dan dapat menangani ribuan permintaan. Anda dapat menskalakan aplikasi Django Anda dengan cara berikut.

Perangkat Keras

Tim Django merancang kerangka kerja web untuk secara efisien menggunakan perangkat keras dalam sistem anda. Dengan arsitektur shared-nothing, Django memisahkan komponen seperti lapisan basis data (model) dan lapisan aplikasi (tampilan). Anda dapat menambahkan perangkat keras di tingkat mana pun tanpa memengaruhi sistem lainnya. Anda dapat menambahkan lebih banyak server basis data atau server aplikasi ke dalam sistem Anda, dan Django akan menggunakan sumber daya ini secara efisien untuk menangani beberapa pengunjung.

Caching

Caching adalah proses menyimpan beberapa data halaman web pada server klien atau pada server perantara sehingga aplikasi Django anda dapat memproses permintaan lebih cepat, meningkatkan skala. Django menawarkan sistem caching yang kuat dengan tingkatan berbeda dari caching:

  1. Anda dapat menyimpan seluruh situs web Anda.
  2. Anda dapat menyimpan output fungsi tampilan tertentu.
  3. Anda dapat menyimpan konten tertentu yang memakan waktu untuk dibuat.

Proyek Django juga bekerja dengan baik dengan cache pihak ketiga. Anda dapat menulis kode yang memberikan petunjuk tentang cache ini dan memberi tahu mereka bagian mana dari aplikasi Anda yang ingin Anda cache.

Bagaimana AWS dapat membantu mendukung aplikasi web Django Anda?

AWS Elastic Beanstalk adalah layanan yang ramah pengguna untuk melakukan deployment dan menskalakan aplikasi dan layanan web yang telah dikembangkan dengan teknologi seperti Django, Python, Java, .NET, PHP, Node.js, Ruby, Go, dan Docker pada server yang sudah dikenal seperti Apache, Nginx, Passenger, dan IIS.

Elastic Beanstalk mendukung developer Django dengan cara berikut:

  • Anda mengunggah kode Django anda dan Elastic Beanstalk secara otomatis menangani deployment.
  • Elastic Beanstalk menyediakan dan mengoperasikan infrastruktur dan mengelola tumpukan aplikasi (platform) untuk Anda, sehingga Anda tidak perlu menghabiskan waktu atau mengembangkan keahlian ini.
  • Elastic Beanstalk secara otomatis menaikkan dan menurunkan skala aplikasi Anda berdasarkan kebutuhan spesifik aplikasi Anda menggunakan pengaturan Auto Scaling yang mudah disesuaikan.

Mulai melakukan deployment aplikasi Django ke Elastic Beanstalk dengan membuat akun AWS gratis hari ini.

Langkah berikutnya Django AWS

Lihat sumber daya terkait produk tambahan
Lihat penawaran gratis untuk layanan Alat Developer di cloud 
Daftar untuk akun gratis

Dapatkan akses secara instan ke AWS Tingkat Gratis. 

Daftar 
Mulai membangun di konsol

Mulai membangun di Konsol Manajemen AWS.

Masuk