urlmiddleware Bunun yerine her isteğine küresel katman ekleyerek daha url yapılandırmaları dayalı Django projede katman tanımlamanızı sağlar Django uygulaması.
Neden?
Küresel katman ekleme her zaman iyi bir şey değil. Sadece web sitenize belirli alanlarda etkisini almak isteyebilirsiniz. Üçüncü taraf uygulamalar da daha sonra url.py dosyasında kendi katman tanımlarını içerir ve genel ayarlarını değiştirmek için ihtiyaç kaldırabilirsiniz.
Hızlı Başlat
Urlmiddleware yükleyin:
urlmiddleware yüklemek pip
Ancak, daha sonra url tabanlı katman kontrol edecek tek bir global katman sınıfını kayıt olmam gerekiyor, yüklü uygulamalar eklemek için gerek yoktur:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # Diğer tüm katman sonra urlmiddleware ekleyin.
Ve nbsp; 'urlmiddleware.URLMiddleware'
)
Normal url tanımları aşağıda url.py dosyaları projenize katman eklemeye başlayın:
middlewarepatterns = desenleri ('',
& Nbsp; url (r '^ myapp /', MyMiddleWareClass),
)
Yaygın bir örnek, url ağacının bütün alt bölümlerine gerekli giriş eklemek için bu tekniği kullanıyor. Önce bir LoginRequiredMiddleware oluşturmanız gerekir:
django.conf ithalat ayarlarından
django.contrib.auth.views ithalat girişi itibaren
django.http import HttpResponseRedirect
sınıf LoginRequiredMiddleware (nesne):
& Nbsp; def process_request (self, istek):
& Nbsp; login_path = settings.LOGIN_URL
Ve nbsp, eğer request.path = login_path ve request.user.is_anonymous ()!:
& Nbsp; request.POST eğer:
& Nbsp; return giriş (istek)
& Nbsp; else:
& Nbsp; HttpResponseRedirect ('% s sonraki =% s?'% (Login_path, request.path)) iade
Sonra urls.py dosyasında:
myapp.middleware ithalat LoginRequiredMiddleware gelen
middlewarepatterns = desenleri ('',
& Nbsp; url (r '^ hesapları /' LoginRequiredMiddleware),
)
! Bitti
Gereksinimleri :
- Python
- Django
Yorum Bulunamadı