创建可组合组件的Django模板标记

django-component的Python项目详细描述


Modern components for django模板 受javascript框架启发的声明性和可组合组件。在

支持Python3.6+和Django 1.112.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将这些特性(blockincludesinclusion_tagsimple_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',]},}],

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

推荐PyPI第三方库


热门话题
Javalog4j2。xml和log4j2test。eclipse中的xml   java映像未显示在surfaceview中   在Java中,能否在for之后立即放置if?   java调用构造函数的不同方式是什么?   java为什么不将其视为多重继承,而所有类都首先从对象类扩展,然后再扩展其他类   带有ms access的java不显示数据库结果   java Eclipse命令行URL参数切断https   java Android JNI回调似乎调用了一个随机方法   java Apache Camel处理XMLFile中声明的编码   java Bonita BPM不要等待Bonita的函数结束   布尔Java:构建逻辑表达式,然后验证它们   java在不使用QueryString的情况下将变量从一个网站页面传递到另一个网站页面   java ORA01861:文本与格式字符串不匹配   java字节[]字符串到C中的字符串#   java试图通过socket发送sqlite数据库文件   java如何使用命令行更改属性文件中的浏览器值以运行selenium测试用例