从Django视图构建html文件。
frozen-django的Python项目详细描述
冻DJANGO
将由Django视图创建的网页导出到html文件中。在
例如,它不会将文件部署到AWS,也不会收集 静态文件或媒体文件中的资源。在
假设构建过程将由Django信号触发, 例如,当一个BlogPost被创建时,只会重新生成相关的 html(或json)文件。在
灵感来源:
- django-bakery
- django-蒸馏
要求
- 将
frozen_django
添加到您的INSTALLED_APPS
- 将只处理命名的URL
- 将只处理文件扩展名为(.html、.json、.js、.xml等)的URL
- 具有分页的Django视图必须具有LinkHTTP头或
内容中的html标记
<link rel="next" />
设置
- 冻根(应填写)
- 冻结中间件(可选)
美国石油学会
- Django命令
freeze_view
frozen_django.tasks_celery.freeze_view
frozen_django.tasks_uwsgi.freeze_view
示例
以下是所有页面重建的示例:
档案小说/网址.py公司名称:
。。代码::python
from django.urls import path
#-
from novel_serie.views import ViewSerie
from website import views
urlpatterns = [
# must be before ViewSerie because that one is also a match
path('index.html', views.Home.as_view(), name='Home'),
path('index/pages/<int:page>.html', views.Home.as_view(),
name='HomePages'),
path('<str:slug>.<str:format>', ViewSerie.as_view(),
name='DisplaySerie'),
]
档案网站/视图.py在
。。代码::python
^{pr2}$文件网站/管理/命令/构建.py在
。。代码::python
from django.conf import settings
from django.core.management.base import BaseCommand
from frozen_django.tasks_uwsgi import freeze_view
#-
from novel_serie.models import Serie
class Command(BaseCommand):
help = "Build static html files."
def build(self, view_name, **kwargs):
for host in settings.ALLOWED_HOSTS:
freeze_view(view_name, base_url=host, **kwargs)
def handle(self, *args, **kwargs):
self.build('website.views.Home') # will also build pages.
for obj in Serie.objects.all():
self.build('novel_serie.views.ViewSerie', slug=obj.slug,
format='html')
。。_django面包店:https://pypi.org/project/django-bakery/ .. _丹戈馏出物:https://pypi.org/project/django-distill/
- 项目
标签: