Easy way to caching template.
Very simple usage:
@django_template("my_site.html")
def master_home(request):
variables = { 'title' : "Hello World!" }
return variables
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | # Author: Shwagroo Team
# Website: (http://django-gems.blogspot.com/)
from django.template import loader, RequestContext
from django.http import HttpResponse, Http404
from settings import DEBUG
decorator_with_args = lambda decorator: lambda *args, **kwargs: lambda func: decorator(func, *args, **kwargs )
templates = {}
def django_template_to_string( request, variables, template ):
"""
usage:
django_template_to_string( request, { 'title' : 'hello' }, "base.html" )
"""
if not DEBUG:
temp = templates.get( template )
if temp is None:
temp = loader.get_template(template)
templates[template] = temp
else:
temp = loader.get_template(template)
c = RequestContext(request)
c.update(variables)
return temp.render(c)
@decorator_with_args
def django_template(func, template=None):
"""
usage:
@django_template("moja_strona.html")
def master_home(request):
variables = { 'title' : "Hello World!" }
return variables
"""
def wrapper(request,*args,**kwargs):
variables = func(request, *args, **kwargs )
string = django_template_to_string( request, variables, template )
return HttpResponse( string )
wrapper.__name__ = func.__name__
wrapper.__dict__ = func.__dict__
wrapper.__doc__ = func.__doc__
return wrapper
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 7 months ago
Comments
Please login first before commenting.