如何在 Django 模板中输出 "{{"

起步

随着 javascript 的壮大,前端也要使用自己的模板引擎了。若变量使用 {{ 包裹的形式,而 {{ 又会被 Django 模板引擎解析。导致 {{ 无法输出到前端,这个时候应该怎么处理?大概有三种方式解决。

方法一:使用 templatetag 标签

这个官方给出的解决方案,标签也是内置的:

{% templatetag openvariable %} variable {% templatetag closevariable %}

输出到前端为: {{ variable }} 它能在渲染后的内容前后加上标签。比如:

{% templatetag openvariable %} variable || {{ count }} {% templatetag closevariable %}

渲染为: {{ variable || 90 }} ,可以看到 templatetag 标签的内容会被解析,然后再将得到的解析结果包裹 {{ ,因此这个方法的自由度很高。

方法二:使用 verbatim 临时关闭模板引擎

标签 verbatim 也是内置标签,它的作用是原样输出模板内容:

{% verbatim %}{{ variable }}{% endverbatim %}

渲染结果为: {{ variable }} 。

方法三:使用自定义标签

创建标签函数:

@register.simple_tag()
def double_brace(text):
  return "{{ %s }}" % text

模板中使用:

{% double_brace "variable" %}

渲染结果: {{ variable }} 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 在Django中输出matplotlib生成的图片方法

    下面的代码片段是直接在Django中输出matplotlib生成的图片,网上很多种方法都是先生成图片再调用,感觉不是那么直接. 环境:Python2.7,Django1.83 该文件为views.py文件,函数映射按实际设置. from django.shortcuts import render from django.http import HttpResponse from matplotlib.figure import Figure from matplotlib.backends.b

  • Django shell调试models输出的SQL语句方法

    在settings.py里,配置如下logging: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True,

  • Django REST为文件属性输出完整URL的方法

    前言 我的 App 项目的 API 部分是使用 Django REST Framework 来搭建的,它可以像搭积木一样非常方便地搭出 API,兼具方便和灵活. django是一个神奇的框架,而restframework又是遵循了这个框架的另一个神奇的框架,然而由于restframework的文档稀烂无比,很多时候你必须看源码才能写出科学的代码,这挡住了很多新手的路. 在使用的过程中我也积累了一些小技巧,这里写一则关于如何为文件属性输出完整 URL 的字段. 实现方法 一个典型的案例是,当请求

  • django输出html内容的实例

    最近在学习django,于是就用django做了一个简单的网站,用来练手,具体功能就是从网上抓取数据,然后放到我的网站上面,但是遇到一个问题就是django无法输出html格式的内容,只能以字符串的形式输出: data = '<h1>hello world</h1>' <p>{{ data }}</p> 我们目的是输出的是: hello world 但是结果输出的是: <h1>hello world</h1> 在网上搜了好久,终于找到

  • Django开发中的日志输出的方法

    开发环境:Ubuntu16.04+Django 1.11.9+Python2.7 一:使用自定义函数输出日志到log文件: import time def print_log(log): file_obj = open('/tmp/filename.log', 'a+') log_time = time.strftime( '[%Y-%m-%d %H:%M:%S]', time.localtime( time.time())) # 转化时间格式 file_obj.write("%s\n"

  • 如何在 Django 模板中输出 "{{"

    起步 随着 javascript 的壮大,前端也要使用自己的模板引擎了.若变量使用 {{ 包裹的形式,而 {{ 又会被 Django 模板引擎解析.导致 {{ 无法输出到前端,这个时候应该怎么处理?大概有三种方式解决. 方法一:使用 templatetag 标签 这个官方给出的解决方案,标签也是内置的: {% templatetag openvariable %} variable {% templatetag closevariable %} 输出到前端为: {{ variable }} 它能

  • Django 模板中常用的过滤器实现

    模版常用过滤器 在模版中,有时候需要对一些数据进行处理以后才能使用.一般在Python中我们是通过函数的形式来完成的.而在模版中,则是通过过滤器来实现的.过滤器使用的是|来使用. add 将传进来的参数添加到原来的值上面.这个过滤器会尝试将值和参数转换成整形然后进行相加.如果转换成整形过程中失败了,那么会将值和参数进行拼接.如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表.示例代码如下: {{ value|add:"2" }} 如果value是等于4,那么结果将是6.

  • 基于Django模板中的数字自增(详解)

    Django框架的模板提供了{% for %} 标签来进行循环 例如对集合进行循环是比较简单的 {% for row in v1 %} <div>{{row.name}}</div> {% endfor %} 但是在Django中,并不直接支持形如"int i = 0;i<100;i++" 这样的循环,Django有自己的自增方法 假设v1内有2个元素 1,从1开始正向自增 结果1,2 {% for row in v1 %} <div>{{fo

  • web.py在模板中输出美元符号的方法

    由于web.py已经在模板中定义"$"符号位定界符,所以在模板中如果要使用美元符号需要特殊处理. 如我要在模板中输出"$name"字符串: 复制代码 代码如下: $name 报错 $name被认定为一个变量而不是当作HTML字符串处理.如果想要输出"$name"字符串必须要这么写: 复制代码 代码如下: $$name 保存运行正确输出. 特别是跟jQuery里混合使用的时候,也要注意.如: 复制代码 代码如下: $("id")

  • 在django模板中实现超链接配置

    django中的超链接,在template中可以用{% url 'app_name:url_name' param%} 其中app_name在工程urls中配置的namespace取值,url_name是在tweb/urls.py中配置的name对应 启用的param参数为可选项,当函数存在的时候带上参数对应的取值 urls.py urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^tweb/',include('tweb.urls'

  • Django模板中变量的运算实现

    在django中的模板下我们知道变量使用{{xxx}}来呈现,可是当出现两个变量进行运算怎么处理那? #加法: {{value|add:value2}} #返回的结果是value+value2的值,假设你value为40,value2为60 ,则该表达式 #返回结果为100 #减法 {{value|add -value2}} #与加法的性质一样,只不过是把第二个参数变成负数进行运算,返回的结果是value-value2 #假如value=4,value2=8,则返回的结果是-4 #乘法 {% w

  • 如何在Django项目中引入静态文件

    今天继续学习Django,今天主要掌握两个小点 一.如果为Django项目中引入静态文件 1.先要在project目录下创建static的目录,然后将jquery文件拷贝这个目录下就可以了 2.在project的settings文件中静态文件的路径,注意,这里的逗号千万不可省略,不然Django会报错的 3.在html文件就可以引入这个jquery文件了 二.下面我们学习下如何前台提交数据到后台 1.先在html文件中写一个form表单,用来提交数据,我们就提交db这个url中,用post的方式

  • 详解如何在Go项目中输出版本信息

    我们经常在使用CLI工具的时候,都会有这样的参数输出: ➜ ~ docker version Client: Docker Engine - Community Version: 18.09.2 API version: 1.39 Go version: go1.10.8 Git commit: 6247962 Built: Sun Feb 10 04:12:39 2019 OS/Arch: darwin/amd64 Experimental: false ➜ ~ 可以打印出构建时对应的版本信息

  • django框架模板中定义变量(set variable in django template)的方法分析

    本文实例讲述了django框架模板中定义变量的方法.分享给大家供大家参考,具体如下: 总有一些情况,你会想在django template中设置临时变量,但是django 对在模板中对临时变量的赋值没有很好的开箱即用的tag 或者filter.但是还是能通过一些其他方法实现的. 1. 利用 django 自带的 with 标签实现 2. 利用自定义 tag  实现,应该灵活很多. 利用 django 自带的 with 标签实现对变量赋值 好像在django 1.3 之后才支持这种做法 从cont

  • ThinkPHP模板中数组循环实例

    本文实例讲述了ThinkPHP模板中数组循环的实现方法.分享给大家供大家参考.具体实现方法如下: ThinkPHP开发过程中经常用到输出数组在模板中使用,一般select出来的数据都是二维数组,我们在模板中用volist标签就可以输出,今天开发遇到了这样一个问题:如果是二维数组,如何在模板中输出呢?经过查看开发手册,问题得到解决,分享一下,比如这样的一维数组: 复制代码 代码如下: array(2) { [2] => string(12) "www.jb51.net博文配图" [

随机推荐