从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/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java能否使用OpenJPA将一个实体持久化到多个持久化单元?   java如何访问当前按下的键   java singleton是否意味着哈希代码总是返回相同的值?   inputstream无法在Java中同时使用STDIN和STDERR读取程序输出   java运行时有多贵。getRuntime()与获取内存度量相结合   java AndroidStudio ListView适配器更新   java小程序请求未扩展实时会话   java是设置布尔值所必需的关键部分?   java比较两个字符串,并突出显示发现的不匹配项   java带抽屉布局,无论哪个屏幕处于活动状态,如何在按下后退键时关闭应用程序?   爪哇:颜色有什么区别。黑色和彩色。黑色   Velocity模板中子类的java访问方法   java如何快速学习Drools或其他规则引擎   从Java应用程序访问时缓存数据库查询结果   java cassandra nodetool JPLISAgent。c错误   java我正在解析一个没有pubDate的RSS提要,有没有其他方法可以确定一个项目是何时发布的?