创建可组合组件的Django模板标记
django-component的Python项目详细描述
Modern components for django模板 受javascript框架启发的声明性和可组合组件。在
支持Python3.6+和Django 1.11,2.0+,和3.0+
使用
描述您的组件:
# myapp/templatetags/mycomponents.pyfromdjango_componentimportLibrary,Componentregister=Library()@register.componentclassCard(Component):template="myapp/card.html"classMedia:css={"all":["myapp/card.css"]}js=["myapp/card.js"]^{pr2}$
并在模板中使用它们
{% load mycomponents %} {% components_css %} {% Card title="My card's title" %} This will be accessible as the `children` variable. It's just django template, <span>{{ variable }}</span> ! {% arg header %} This <imgsrc="foo.jpg"/> will be in the header of the card {% endarg %} {% /Card %} {% components_js %}
django-component还为每个组件启用上下文处理,有关完整的api,请参阅文档(TODO)。在
为什么选择django组件?在
django-component使创建可重用模板组件变得容易。 Django有一些特性可以解决这个问题,但是它们都有一些局限性。 django-component将这些特性(block,includes,inclusion_tag,simple_tag)统一到一个唯一的api下。 此外,django-component解决了我对django中可重用组件的一个最大挫折:跟踪每个组件的css和js依赖关系,^{str1}$只在有效使用时才包含它们。在
安装
pip install django-component
然后将django-component添加到已安装的应用程序中, 还建议添加django-组件.templatetags内置模板标签
INSTALLED_APPS=[...,"django_component",...]TEMPLATES=[{'OPTIONS':{'builtins':['django_component.templatetags',]},}],
- 项目
标签: