03-Django模板

d:\python\demo1

目标

  • 变量
  • 分支 if/else
  • 循环 for
  • 判断 ifequal/ifnotequal标签
  • 过滤器 管道命令
  • 算术运算
  • include 标签
  • 注释标签

准备

views.py,增加一个新的对象render(递交/提交之意),用于向模板提交数据:

from django.shortcuts import render

1-变量

变量使用了双括号
1)demo1/templates/hello.html 文件代码:
<h1>{{ hello }}</h1>

2)views.py增加如下代码

def hello(request):
    context          = {}
    context['hello'] = 'Hello World!'
    return render(request, 'hello.html', context)

3)urls.py关键代码

from django_web.views import index #导入views.py文件中的index函数
from django_web.views import hello #导入views.py文件中的hello函数
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', index), #在url中凡是以url开头的访问都使用index函数来处理该请求
    url(r'^hello/', hello),
]

4)termainal输入

python manage.py runserver

5)http://localhost:8000/hello/

2-分支 if/else

基本语法格式如下:

{% if condition %}
    ... display
{% endif %}

或者:

{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

修改上面的程序views.py,再传递一个数字型的变量值,假设为学生成绩

def hello(request):
    ##创建一个字典对象
    context = {}
    context['hello'] = 'Hello World!'
    context['var'] = 85
    return render(request, 'hello.html',context)

hello.html增加以下代码

{% if var >= 90 %}
    <p>优</p>
{% elif var < 90 and var >= 80 %}
    <p>良</p>
{% else %}
    <p>其他</p>
{% endif %}

运行看效果http://localhost:8000/hello/

image.png

3-循环 for

** 语法 **
{% for athlete in athlete_list reversed %}
...
{% endfor %}

views.py新增

context['TutorialList']=["HTML", "CSS", "jQuery", "Python", "Django"]

hello.html新增

{% for i in TutorialList %}
{{ i }}
{% endfor %}

4-判断 ifequal/ifnotequal标签

语法
{% ifequal user currentuser %}
<h1>Welcome!</h1>
{% endifequal %}

hello.html

{% ifequal var 85 %}
85分
{% endifequal %}

{% ifnotequal var 86 %}
不是86
{% endifnotequal %}

5-过滤器 管道命令

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下所示:

{{ name|lower }}

{{ name }} 变量被过滤器 lower 处理后,文档大写转换文本为小写。

过滤管道可以被* 套接* ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入:

{{ my_list|first|upper }}

以上实例将第一个元素并将其转化为大写。

有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含。 例如:

{{ bio|truncatewords:"30" }}

这个将显示变量 bio 的前30个词。

其他过滤器:

addslashes : 添加反斜杠到任何反斜杠、单引号或者双引号前面。
date : 按指定的格式字符串参数格式化 date 或者 datetime 对象,实例:
{{ pub_date|date:"F j, Y" }}
length : 返回变量的长度。

6-算术运算

加法:

{{ value|add:10}} 

value=5,则返回15
减法:

 {{value|add:-10}}

value=5,则返回-5,这个比较好理解,减法就是加一个负数

乘法:

{%  widthratio 5 1 100 %}

上面的代码表示:5/1 *100,返回500,widthratio需要三个参数,它会使用 (参数1)除以(参数2)乘以(参数3),所以要进行乘法的话,就将参数2设置为1即可
除法:

{%  widthratio 5 100 1 %}

上面的代码表示:5/100*1,返回0.05,只需要将第三个参数设置为1即可
求余:

{% value|divisibleby:2 %}

value=11,则返回False,value=10,则返回True

7-include 标签

注意:双引号不可省略,否则报错
{% include "nav.html" %}

8-注释标签

Django 注释使用 {# #}。
{# 这是一个注释 #}

更多Django标签,查阅官方文档(英文)
https://docs.djangoproject.com/en/2.0/ref/templates/builtins/

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

推荐阅读更多精彩内容

  • 声明:转载请注明出处http://www.jianshu.com/p/1664dcfd840c 最近在折腾Djan...
    蛇发女妖阅读 6,273评论 1 10
  • 目录 一 模板简介 二 模板语法之变量2.1 变量的基本使用2.2 深度查询之句点符的使用2.3 过滤器 三 模板...
    小猿取经阅读 342评论 0 0
  • Django 准备 “虚拟环境为什么需要虚拟环境:到目前位置,我们所有的第三方包安装都是直接通过 pip inst...
    33jubi阅读 1,322评论 0 5
  • 一、概要 对于模版,其实就是读取模版(其中嵌套着模版标签),然后将模型中获取的数据插入到模版中,最后将信息返回给用...
    唯老阅读 1,479评论 0 6
  • 看山还是山,看水还是水,你来与不来,山仍在等你,水仍在这里!
    馥有诗意阅读 146评论 0 1