0Pricing
Django Academy · Pelajaran

Menulis Middleware Kustom

Hubungkan kode ke setiap permintaan dan respons

Menulis Middleware Kustom adalah pelajaran Django Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Django Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Django Academy mencakup 4 pelajaran total.

Middleware dalam Satu Kalimat

Middleware adalah lapisan yang membungkus setiap permintaan dan respons, sehingga Anda dapat menjalankan kode sebelum sebuah tampilan dan setelah tampilan tersebut mengembalikan hasil.

Model Bawang

Bayangkan middleware sebagai lapisan-lapisan bawang di sekeliling tampilan Anda. Sebuah permintaan bergerak ke dalam melalui setiap lapisan, lalu respons bergerak kembali ke luar.

Gaya Modern

Middleware modern adalah callable yang menerima get_response satu kali saat mulai dan mengembalikan penangan yang dipanggil Django untuk setiap permintaan.

Middleware Minimal

Factory menyimpan get_response, dan fungsi bagian dalam menjalankan kode Anda di sekitar pemanggilan tersebut. Bentuk callable ini saja sudah dibutuhkan Django.

def simple(get_response):
    def handler(request):
        # before the view
        response = get_response(request)
        # after the view
        return response
    return handler

Kode Sebelum Tampilan

Apa pun yang berada sebelum get_response dijalankan saat permintaan masuk. Ini cocok untuk pencatatan, pengukuran waktu, atau melampirkan data ke permintaan.

def handler(request):
    request.start = time.time()
    return get_response(request)

Kode Setelah Tampilan

Apa pun yang berada setelah get_response dijalankan saat permintaan keluar. Di sini Anda dapat membaca atau mengubah response sebelum mencapai peramban.

response = get_response(request)
response["X-App"] = "demo"
return response

Bentuk Berbasis Kelas

Anda juga dapat menulis middleware sebagai class dengan __init__ dan __call__. Bentuk ini mencerminkan bentuk fungsi, tetapi mengelompokkan hook terkait dengan rapi.

class Timer:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        return self.get_response(request)

Daftarkan di MIDDLEWARE

Middleware hanya berjalan setelah Anda mencantumkan jalur bertitiknya dalam pengaturan MIDDLEWARE di settings.py.

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "myapp.middleware.simple",
]

Memutus Rantai Permintaan

Jika middleware mengembalikan respons sendiri tanpa memanggil get_response, middleware tersebut memutus rantai dan tampilan tidak pernah dijalankan.

Satu Tugas per Middleware

Jaga agar setiap middleware berfokus pada satu perhatian, seperti pengukuran waktu atau pemeriksaan autentikasi. Lapisan kecil lebih mudah diurutkan dan diperbaiki.

Penggunaan Nyata yang Umum

Tim menggunakan middleware khusus untuk pencatatan permintaan, menambahkan header, menangani lokal, dan melakukan pemeriksaan autentikasi ringan di seluruh situs.

Pemeriksaan Singkat

Periksa cara middleware modern meneruskan proses ke lapisan berikutnya.

Ringkasan: Membangun Middleware

Anda telah membangun middleware khusus: callable yang menerima get_response, dengan kode sebelum dan sesudah tampilan, serta terdaftar dalam pengaturan MIDDLEWARE. ✅

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menulis Middleware Kustom” gratis?

Ya — teks lengkap “Menulis Middleware Kustom” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Django Academy, upgrade ke CoddyKit PRO. Kursus Django Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menulis Middleware Kustom”?

Hubungkan kode ke setiap permintaan dan respons Kamu berlatih Django Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Django Academy?

Tidak diperlukan pengalaman sebelumnya. Django Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menulis Middleware Kustom” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Django Academy ini?

Ya. Setiap pelajaran Django Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Sinyal post_save dan pre_delete
  2. Menghubungkan Penerima dengan Benar
  3. Menulis Middleware Kustom
  4. Urutan Middleware dan process_view
← Kembali ke Django Academy