urlmiddleware adalah aplikasi Django yang memungkinkan Anda untuk menentukan middleware dalam proyek Django Anda berdasarkan konfigurasi url daripada menambahkan middleware global untuk setiap permintaan tunggal.
Mengapa?
Menambahkan middleware global tidak selalu hal yang baik. Anda mungkin hanya ingin berlaku pada daerah tertentu di situs web Anda. Aplikasi pihak ketiga juga dapat kemudian termasuk definisi middleware mereka dalam file url.py dan menghapus kebutuhan bagi Anda untuk mengubah pengaturan global.
Quick Start
Instal urlmiddleware:
pip menginstal urlmiddleware
Tidak perlu untuk menambahkannya ke aplikasi diinstal Anda, namun Anda perlu mendaftar satu kelas middleware global yang kemudian akan mengontrol middleware url berdasarkan:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # menambahkan urlmiddleware setelah semua middleware lainnya.
& Nbsp; 'urlmiddleware.URLMiddleware',
)
Mulai menambahkan middleware untuk proyek Anda dalam file url.py Anda di bawah definisi url normal Anda:
middlewarepatterns = pola ('',
& Nbsp; url (r '^ myapp /', MyMiddleWareClass),
)
Sebuah contoh umum adalah menggunakan teknik ini untuk menambahkan diperlukan login ke sub bagian keseluruhan dari pohon url Anda. Pertama Anda perlu membuat sebuah LoginRequiredMiddleware:
dari django.conf pengaturan impor
dari django.contrib.auth.views impor masuk
dari django.http impor HttpResponseRedirect
kelas LoginRequiredMiddleware (objek):
& Nbsp; def process_request (self, permintaan):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; jika Request.Path = login_path dan request.user.is_anonymous ()!:
& Nbsp; jika request.POST:
& Nbsp; pulang login (permintaan)
& Nbsp; yang lain:
& Nbsp; kembali HttpResponseRedirect ('% s berikutnya =% s?'% (Login_path, Request.Path))
Kemudian dalam file urls.py Anda:
dari myapp.middleware impor LoginRequiredMiddleware
middlewarepatterns = pola ('',
& Nbsp; url (r '^ rekening /', LoginRequiredMiddleware),
)
! Selesai
Persyaratan :
- Python
- Django
Komentar tidak ditemukan