urlmiddleware

Software Screenshot:
urlmiddleware
Software Details:
Version: 0.2.1
Upload Date: 11 May 15
Developer: Dougal Matthews
Distribution Type: Freeware
Downloads: 3

Rating: nan/5 (Total Votes: 0)

urlmiddleware is a Django app that allows you to define middleware in your Django project based on url configurations rather than adding middleware globally to every single request.

Why?

Adding middleware globally is not always a good thing. You may only want it to take effect on certain areas in your website. Third party apps can also then include their middleware definitions in the url.py file and remove the need for you to modify global settings.

Quick Start

Install urlmiddleware:

pip install urlmiddleware

There is no need to add it to your installed apps, however, you do need to register one global middleware class that will then control the url based middleware:

MIDDLEWARE_CLASSES = (
 # ...
 # add urlmiddleware after all other middleware.
 'urlmiddleware.URLMiddleware',
)


Start adding middleware to your project in your url.py files below your normal url definitions:

middlewarepatterns = patterns('',
 url(r'^myapp/', MyMiddleWareClass),
)


A common example is using this technique to add login required to whole sub sections of your url tree. First you need to create a LoginRequiredMiddleware:

from django.conf import settings
from django.contrib.auth.views import login
from django.http import HttpResponseRedirect


class LoginRequiredMiddleware(object):

 def process_request(self, request):

 login_path = settings.LOGIN_URL

 if request.path != login_path and request.user.is_anonymous():
 if request.POST:
 return login(request)
 else:
 return HttpResponseRedirect('%s?next=%s' % (login_path, request.path))


Then in your urls.py file:

from myapp.middleware import LoginRequiredMiddleware

middlewarepatterns = patterns('',
 url(r'^accounts/', LoginRequiredMiddleware),
)


Done!

Requirements:

  • Python
  • Django

Other Software of Developer Dougal Matthews

django-appregister
django-appregister

20 Feb 15

html5video
html5video

23 Jul 15

django-warewolf
django-warewolf

11 May 15

Comments to urlmiddleware

Comments not found
Add Comment
Turn on images!