How do I generate a static html file from a django template? How do I generate a static html file from a django template? django django

How do I generate a static html file from a django template?


You can leverage Django's template loader to render your template, including whatever context you pass to it, as a string and then save that out to the filesystem. If you need to save that file on an external system, such as Amazon S3, you can use the Boto library.

Here's an example of how to render a view to a file, using an optional querystring parameter as the trigger...

from django.shortcuts import renderfrom django.template.loader import render_to_stringdef my_view(request):    as_file = request.GET.get('as_file')    context = {'some_key': 'some_value'}    if as_file:        content = render_to_string('your-template.html', context)                        with open('path/to/your-template-static.html', 'w') as static_file:            static_file.write(content)    return render('your-template.html', context)


django-bakery is a well-developed "set of helpers for baking your Django site out as flat files".