I would like to know if there is any library/module that can convert my django templates into a regular html file.
Let's say i have this django template:
index.html
{% extends "base.html" %}
<p> My name is {{ name }}. Welcome to my site </p>
And i want to convert it to something like this:
index.html
< the content of base.html here >
<p> My name is John Doe. Welcome to my site </p>
Is there any simple utility to do that ?
Lets say you want to keep your index.html template file and generate a rendered version of it from a context like {'name' : 'John Doe'} into a file called index2.html . You could achieve this by first getting the text output from rendering index.html with a given context and then writing that to another html file.
I am assuming you have your index.html file in 'templates' inside you django project and you've left BASE_DIR setting to the default value.
import os
from django.template import engines
from django.conf import settings
# Get rendered result as string by passing {'name' : 'John Doe'} to index.html
with open(os.path.join(settings.BASE_DIR, 'templates'), 'r') as f:
template = engines['django'].from_string(f.read())
text = template.render({'name':'John Doe'})
# Write the rendered string into a file called 'index2.html'
with open(os.path.join(settings.BASE_DIR, 'templates','index2.html'), 'w+') as f:
f.write(text)
You may already have used render
to render out your template in your view like:
return render(request, 'folder/some.html')
Similarly you can do:
html = render(request, 'folder/some.html').content
to get the desired HTML.
This HTML is in bytes format .
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.