Login

GlobalRequest middleware

Author:
myq
Posted:
November 26, 2012
Language:
Python
Version:
1.4
Score:
0 (after 0 ratings)

Thread-safe middleware that makes the current request object available globally.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from threading import current_thread

class GlobalRequest(object):
    _requests = {}

    @staticmethod
    def get_request():
	try:
            return GlobalRequest._requests[current_thread()]
	except KeyError:
            return None

    def process_request(self, request):
        GlobalRequest._requests[current_thread()] = request

    def process_response(self, request, response):
        # Cleanup                                                               
        thread = current_thread()
        try:
            del GlobalRequest._requests[thread]
        except KeyError:
            pass
        return response

def get_request():
    return GlobalRequest.get_request()

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 5 months ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 5 months, 1 week ago
  3. Serializer factory with Django Rest Framework by julio 1 year ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year ago
  5. Help text hyperlinks by sa2812 1 year, 1 month ago

Comments

Please login first before commenting.