urlmiddleware é uma aplicação Django que permite que você defina middleware em seu projeto Django com base nas configurações de URL em vez de adicionar middleware globalmente para cada requisição.
Por que?
Adicionando middleware globalmente nem sempre é uma coisa boa. Você só pode querer que ela tenha efeito em determinadas áreas em seu site. Aplicativos de terceiros também podem incluir suas definições de middleware no arquivo url.py e eliminar a necessidade de você modificar as definições globais.
Início Rápido
Instale urlmiddleware:
pip instalar urlmiddleware
Não há necessidade de adicioná-lo aos seus aplicativos instalados, no entanto, você precisa se registrar uma classe middleware global que irá, em seguida, controlar o middleware baseado url:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # adicionar urlmiddleware depois de todos os outros middleware.
& Nbsp; 'urlmiddleware.URLMiddleware',
)
Começar a adicionar middleware para seu projeto em seus arquivos url.py abaixo seus definições url normais:
middlewarepatterns = patterns ('',
& Nbsp; url (r '^ myapp /', MyMiddleWareClass),
)
Um exemplo comum é o uso desta técnica para adicionar Login necessário para sub seções inteiras de sua árvore url. Primeiro você precisa criar um LoginRequiredMiddleware:
django.conf de configurações de importação
de django.contrib.auth.views de login importação
de importação django.http HttpResponseRedirect
LoginRequiredMiddleware classe (objeto):
& Nbsp; def process_request (self, request):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; se request.path = login_path e request.user.is_anonymous (!):
& Nbsp; se request.POST:
& Nbsp; retorno login (request)
& Nbsp; mais:
& Nbsp; retornar HttpResponseRedirect ('% s next =% s?'% (Login_path, request.path))
Em seguida, em seu arquivo urls.py:
de myapp.middleware LoginRequiredMiddleware importação
middlewarepatterns = patterns ('',
& Nbsp; url (r '^ contas /', LoginRequiredMiddleware),
)
! Feito
Requisitos :
- Python
- Django
Comentários não encontrado