在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如何序列化数字?   java如何用我的Mainclass扩展ListActivity类和Fragment类?   JavaJersey、Jackson和JAXRS发布了多种JSON格式   java如何使用JavaFXKeyCombination覆盖系统默认的键盘快捷键,如Ctrl+C、Ctrl+V?   java Jersey类路径扫描示例Jersey。配置。服务器供应商。类路径   java什么样的数据结构可以作为一个数组,但在同一索引下给定多个值时会自动增长到第二维度?   java如何序列化非持久实体中的嵌套PersistentEntityResource   协议缓冲区我可以让protoc在Java中生成int数组吗?   在GregorianCalendar ArrayList Java中添加日期元素   从html模板动态生成pdf文件并用java生成目录   java Gridgain 6.5.5开源多个节点速度较慢。。?   java如何检查数组中所有整数的不相等性?   java在Eclipse中,如何多次运行JUnit测试用例   java侦听器不能处理特定的片段   java不是一个声明?(蓝色J)   找不到Attributer类型的PersonId的java定义