在django模板中捕获输出的微库

django-capture-tag的Python项目详细描述


https://img.shields.io/travis/edoburu/django-capture-tag/master.svg?branch=masterhttps://img.shields.io/pypi/v/django-capture-tag.svghttps://img.shields.io/pypi/dm/django-capture-tag.svghttps://img.shields.io/badge/wheel-yes-green.svghttps://img.shields.io/pypi/l/django-capture-tag.svghttps://img.shields.io/codecov/c/github/edoburu/django-capture-tag/master.svg

在django模板中捕获输出的微库。

例如,这对于:

  • 在网页中重复页面标题,例如<title>标记和面包屑。
  • 重复社交媒体标签的内容。
  • 在多个位置重用缩略图输出。
  • 从扩展模板获取配置数据。

安装

从pypi安装模块:

pip install django-capture-tag

将包添加到INSTALLED_APPS

INSTALLED_APPS+=('capture_tag',)

在模板中加载标记:

{%loadcapture_tags%}

语法

提供以下选项:

{%capture%}...{%endcapture%}                    # output in {{capture}}{%capturesilent%}...{%endcapture%}             # output in {{capture}} only
{%captureasvarname%}...{%endcapture%}         # output in {{varname}}{%captureasvarnamesilent%}...{%endcapture%}  # output in {{varname}} only

示例用法

要捕获社交媒体标签:

{%loadcapture_tags%}<head>
    ...

    {# Allow templates to override the page title/description #}<metaname="description"content="{%captureasmeta_description%}{%blockmeta-description%}{%endblock%}{%endcapture%}"/><title>{%captureasmeta_title%}{%blockmeta-title%}Untitled{%endblock%}{%endcapture%}</title>{# display the same value as default, but allow templates to override it. #}<metaproperty="og:description"content="{%blockog-description%}{{meta_description}}{%endblock%}"/><metaname="twitter:title"content="{%blocktwitter-title%}{{meta_title}}{%endblock%}"/></head>

从扩展模板获取配置:

# base.html

{%loadcapture_tags%}

# read once
{%captureashome_urlsilent%}{%blockhome_url%}{%url'app:index'%}{%endblock%}{%endcapture%}

# reuse twice.
<ahref="{{home_url}}"class="btn page-top">Back to home</a><ahref="{{home_url}}"class="btn page-bottom">Back to home</a>

# child.html
{%extends"base.html"%}{%blockhome_url%}{%url'user:profile'%}{%endblock%}

注意

当一个值只使用一次时,不需要这个包。 在这种情况下,只需将{% block .. %}放在替换内容的正确位置。 所有常见的django模板标记都支持as variable语法, 例如{% url 'app:index' as home_url %}{% trans "Foo" as foo_label %}

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

推荐PyPI第三方库


热门话题
java计数步骤和操作   maven通过将第一个子类/jar添加到第二个子类路径,为一个子类创建jar,并为另一个子类执行goal exec:java   java JavaFX无法在ChoiceBox上调用setOnAction()?   swing使用Java,试图用图像显示JButton的可滚动列表,但显示的是文本而不是按钮   java无法读取跨行突出显示的确切文本   继承无法理解Java中super的功能   通过创建接口的模拟对象进行Java单元测试   活动布局中的java手指绘图?   java以看似随机的间隔获得NullPointerException,不知道为什么   java JButton位置不起作用   非序列化Java对象能否存储在mySQL BLob列中?   java如何使这个删除测试独立?   java Thymeleaf,无法访问该参数   java Solr CoreAware FilterFactory   java日志存储标准数据写入文件   socket上的java传递错误   java如何删除文件?   java Android有键盘小部件吗?   java方法,该方法将点对象作为参数,并根据其是否在直线段内返回true或false