django框架-7模板-循环、判断、常用标签、过滤器等

本节内容:

  1. 列表,字典,类的实例的使⽤
  2. 循环:迭代显示列表,字典等中的内容
  3. 条件判断:判断是否显示该内容,⽐如判断是⼿机访问,还是电脑访问,给出不⼀样的代码。
  4. 标签:for,if 这样的功能都是标签。
  5. 过滤器:管道符号后⾯的功能,⽐如{{ var|length }},求变量⻓度的 length 就是⼀个过滤器。
实例一、显示一个基本的字符串到页面

代码如下:

 #views.py
 def test(request):
    string = 'Hello World !'
    return render(request,'learn/test.html',{'string':string})

<!-- test.html -->
{{ string }}

页面:

Paste_Image.png
实例2 for循环和list内容的展示

代码如下:

 #views.py
 def test(request):
    List = ['caideyang','CCC','AAA','BBB']
    return render(request,'learn/test.html',{'List':List})

<!-- test.html -->
{% for i in List %}
{{ i }}<br>
{% endfor %}

简单总结⼀下:⼀般的变量之类的⽤ {{ }}(变量);功能类的,⽐如循环,条件判断是⽤ {% %}(标签)

实例三,显示字典中内容:
#views.py
def test(request):
    Dict = {'name':'caideyang','age':29}
    return render(request,'learn/test.html',{'Dict':Dict})

<!-- test.html -->
姓名:{{Dict.name}}<br>
年龄:{{Dict.age}}
Paste_Image.png

test.html还可以如下:
{% for key,value in Dict.items %}
{{ key }}:{{ value }}

{% endfor %}

实例四,在模板进⾏ 条件判断和 for 循环的详细操作:
#views.py
def test(request):
    List = map(str,range(100))
    return render(request,'learn/test.html',{'List':List})

假如我们想⽤逗号将这些元素连接起来:

<!-- test.html -->
{% for i in List %}
{{ i }},
{% endfor %}

效果如下:


Paste_Image.png

会发现最后一个元素后面也有逗号,用forloop.last 这个布尔型变量,如果是最后一项,其为真,否则为假

test.html可改成:
 {% for i in List %}
    {{ i }}{% if not forloop.last %},{% endif %}
 {% endfor %}

展示结果如下


Paste_Image.png
在for循环中还有很多有用的东西
变量 描述
forloop.counter 索引从 1 开始算
forloop.counter0 索引从 0 开始算
forloop.revcounter 索引从最⼤⻓度到 1
forloop.revcounter0 索引从最⼤⻓度到 0
forloop.first 当遍历的元素为第⼀项时为真
forloop.last 当遍历的元素为最后⼀项时为真
forloop.parentloop 在嵌套的 for 循环中,获取上层 for 循环的 forloop
  • 当列表中可能为空值时for empty
{% for i in List %}
    {{ i }}{% if not forloop.last %},{% endif%}
    {% empty %}<li>抱歉为空</li>
{% endfor %}
实例五,模板上得到视图对应的⽹址:{% url "view-name" arg1 arg2 %}
#views.py
def add2(request,a,b):
    c = int(a) + int(b)
    return HttpResponse('%s + %s = %s' %(a,b,c))

#urls.py
url(r'^add/(\d+)/(\d+)$',views.add2 ,name='add4'),

<!-- test.html -->
{% url 'add4' 4 5 %}
  • 这样url地址上就会显示出:/add/4/5/ 这个url地址
  • 假如我们以后修改urls.py 中的r'add/(\d+)/(\d+)/$'这一部分,改成另的,例如:r'jiafa/(\d+)/(\d+)/$',我们不需要再次修改模板,当再次访问的时候,地址会自动变成 /jiafa/4/5/

还可以使⽤ as 语句将内容取别名(相当于定义⼀个变量),多次使
⽤(但视图名称到⽹址转换只进⾏了⼀次)
{% url 'some-url-name' arg arg2 as the_url %}
<a href="{{ the_url }}">链接到:{{ the_url }}</a>

实例六,模板中的逻辑操作:==, !=, >=, <=, >, < 这些⽐较都可以在模板中使⽤
{% if score >= 90 %}Good
{% elif score > 60 %}Common
{% else %}Bad
{% endif %} 
  • and, or, not, in, not in 也可以在模板中使⽤
  • 判断‘caideyang’ 是否在List列表里:
{% if 'ziqiangxuetang' in List %}
  ‘caideyang’ 在List列表里
{% else %}
  ‘caideyang’ 不在List列表里
{% endif %}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 第二章:视图和URL 2.1第一个Django驱动的页面 页面的内容由视图函数(view function)生成,...
    m风满楼阅读 996评论 0 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,577评论 18 399
  • 介绍 Jinja是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker...
    ZhouLang阅读 7,844评论 0 2
  • 天下大事,必作于细。忽视细节的人,必然被成功所抛弃。举足若重者,不把细节放在眼里,是不可能建造出摩天大厦的。 “细...
    肖军_云游君阅读 662评论 0 0