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/
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/