- April 16, 2008
- middleware request accept
- 1 (after 1 ratings)
A middleware that parses the HTTP_ACCEPT header of a request.
The request gets a new method called "accepts" that takes a string and returns True if it was in the list of accepted mime-types.
It makes it possible to write views like:
def exampleview(request): if request.accepts('application/json'): # return a json representation if request.accepts('text/html'): # return html
Please note that with this middleware the view defines the priority of the mime-types, not the order in which they where provided in the HTTP-Header.
1 2 3 4 5 6 7 8 9 10 11
import new def accepts( self, mime ): return mime in self.accepted_types class AcceptMiddleware(object): def process_request(self, request): acc = [a.split(';') for a in request.META['HTTP_ACCEPT'].split(',')] setattr(request, 'accepted_types', acc ) request.accepts = new.instancemethod(accepts, request, request.__class__) return None
More like this
- XhtmlDegraderMiddleware by dmh 7 years, 8 months ago
- Render Decorator by dahool 5 years, 6 months ago
- Other approach of making middleware (by decorators) by diverman 4 years ago
- Improved Accept header middleware by ludvig.ericson 6 years, 6 months ago
- Decorator that limits request methods by schinckel 5 years, 8 months ago