Django 生成静态页面

from django.shortcuts import render
from django.template.loader import render_to_string
import os
 
 
def my_view(request):
    context = {'some_key': 'some_value'}
 
    static_html = '/path/to/static.html'
 
    if not os.path.exists(static_html):
        content = render_to_string('template.html', context)
        with open(static_html, 'w') as static_file:
            static_file.write(content)
 
    return render(request, static_html)

当用户访问时,如果判断没有静态页面就自动生成静态页面,然后返回静态文件,当文件存在的时候就不再次生成。
也可以用一个文件夹,比如在project下建一个 static_html 文件夹,把生成的静态文件都放里面,让用户像访问静态文件那样访问页面。

更佳办法

但是一般情况下都不需要生成静态页面,因为Django 有缓存功能,使用 Django Cache(缓存)就相当于把生成生成静态页面,而且还有自动更新的功能,比如30分钟刷新一下页面内容

你可能感兴趣的:(Django 生成静态页面)