When a user requests the same page, with the same data...I'd like Django to return a 304, so that the browser doesn't have to load the page all over again.
I'm new to this. How can this be done?
Thanks.
When a user requests the same page, with the same data...I'd like Django to return a 304, so that the browser doesn't have to load the page all over again.
I'm new to this. How can this be done?
Thanks.
There's extensive description in Django documentation: Conditional view processing
Following tools are particularly useful:
@last_modified
and @etag
view decorators. You supply them with a function to compute the value from request and everything else is done automatically.django.middleware.http.ConditionalGetMiddleware
-- it generates required ETag and returns 304 if there's a cache hit, but this still takes server time to generate full HTML and only network time is saved. Still very good for one-line configuration change.You could look into Django's caching system, or if you can easily check if the user is requesting the same data, you can return a HttpResponseNotModified()
- this returns a 304. Check out the docs here.