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 handlerKode 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 responseBentuk 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
- Sinyal post_save dan pre_delete
- Menghubungkan Penerima dengan Benar
- Menulis Middleware Kustom
- Urutan Middleware dan process_view