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
- codigo alto nivel by MrRocklion 1 month, 1 week ago
- Load template from specific app by Krzysiek555 1 month, 4 weeks ago
- PostgreSQL JSON subqueries by dolamroth 2 months ago
- "Magic Link" Management Command by webology 7 months ago
- Closest ORM models to a latitude/longitude point by simonw 7 months ago