Django组件的最佳实践
Django提供了一种将资产收集到其小部件框架中的方法,并反过来使用一个表单来表示资产,但是在表单框架之外这样做怎么样 例如,假设我只想要一个简单的、自封闭的web组件,它需要两个.js文件、一个CSS文件和一个模板,并由一个视图支持以生成一些数据。这不是一个表单,因为它不用于收集输入。相反,假设它是一个定制的滚动条。我似乎找不到适合这种使用模式的正确匹配项,尽管它看起来很普通,很直截了当 现在这样做似乎意味着将CSS添加到顶级模板中;JS在包含的文档中任意添加到模板或脚本标签;然后将表单呈现为包含。但是有这样的东西不是更容易吗Django组件的最佳实践,django,Django,Django提供了一种将资产收集到其小部件框架中的方法,并反过来使用一个表单来表示资产,但是在表单框架之外这样做怎么样 例如,假设我只想要一个简单的、自封闭的web组件,它需要两个.js文件、一个CSS文件和一个模板,并由一个视图支持以生成一些数据。这不是一个表单,因为它不用于收集输入。相反,假设它是一个定制的滚动条。我似乎找不到适合这种使用模式的正确匹配项,尽管它看起来很普通,很直截了当 现在这样做似乎意味着将CSS添加到顶级模板中;JS在包含的文档中任意添加到模板或脚本标签;然后将表单呈现为
class ScrollBar(...):
template_name = ...
class Assets:
...
然后通过templatetag呈现,但是上下文处理器或其他钩子能够将资产提取到页面中适当的位置
比如:
class ScrollBar(...):
template_name = ...
class Assets:
...
index.html:
<html>
<head>
...
{% compressed_css %}
</head>
<body>
...
{% compressed_js %}
{% block content %}
{% endblock %}
</body>
最终结果是使用指定的参数呈现滚动条的模板,其JS和CSS分别合并到上面的压缩的_CSS和压缩的_JS区域中
我认为我们几乎100%都是通过这种方法实现的,没有压缩的js/compressed的css部分,这就提出了一个问题,那就是我们是否只是将它们包含在所有共享页面中。或者,我们可以使用嵌套/继承的块
亚当