django 框架学习:五.templates模板

前言

html5是一个静态的语言,里面没法传一些动态参数,也就是一个写死的html页面。如果想实现在一个固定的html样式,传入不同的参数,这就可以用django的模板传参来解决。

Django 内置的模板语言 Django Template Language,Jinjia2 是python里面最流行的模板语言,模板语言它不属于python语言,也不属于HTML语言,它是一门独立的语言。

先在TestProject目录下新建templates,层级目录如下:

 

新建一个personinfo.html文件,hello/templates/personinfo.html文件内容如下,模板变量用{{变量名称}}来表示

字符串直接取值 List对象,通过下标 .0 字典对象,通过下标 .key 取出对应value值

 

在settings.py脚本里面添加模板的路径,修改TEMPLATES 中的 DIRS 为[os.path.join(BASE_DIR,'templates')]
BASE_DIR的值前面已经定义为当前脚本的路径:os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

 

 视图与url

 

如果取值对象是应该类的实例对象

接着在朋友pycharm中输入:python manage.py runserver 0.0.0.0:8000

打开浏览器,输入ip:8000/personinfo/ 

 

 

如果取值对象是应该类的实例对象

 

Django 模板标签

{% for %} 允许我们在一个序列上迭代,与python中的for循环类似模板系统会渲染

{% for %},{% endfor %}之间的所有内容。

{% if %} 允许我们在一个序列上迭代,与python中的for循环类似模板系统会渲染

{% if %},{% endif %}之间的所有内容。

 

 

 empty标签

for标签带有一个可以选择的{ % empty % }从句,一遍给出的组没有找到或者空值时,给个默认值。

 

 

 

内部模板变量forloop

 在{% for %} 循环内部,可以访问一个名为 forloop 的模板变量。这个模板变量有若干属性,通过他可以获知循环进程的一些信息。

forloop.counter:表示循环的次数,属性的值从1开始,因此第一次循环时,forloop.counter等于1。

forloop.counter0:与forloop.counter类似,不过是从零开始,第一次循环是,其值为0。

forloop.revcounter:forloop.revcounter值是一个整数,表示循环中剩余的元素数量。第一次循环时,是序列中要遍历的元素总数,最后一次值为1。

forloop.frist:是一个布尔值,第一次循环时值为true,特殊处理第一个元素比较方便。

 forloop.last:是一个布尔值,最后一次循环时值为true,疆场用在一组连接之间放置管道符号。

forloop.parentloop:在嵌套的循环中,引用腹肌循环的forloop对象。

以forloop.last 为例,在每一个连接后放置管符号,最后一个不用放。

 

 if 语句

常用集中场景:

{% if name == 'python' %}

这是{{ name }}的页面

{% endif %}

 

{% if name == 'python' %}

这是{{ name }}的页面

{% elif name == 'django' %}

这是django的页面 {% else %}

这是错误的页面

{% endif %}

 

posted @ 2020-03-23 15:32  流水小哥  阅读(430)  评论(0编辑  收藏  举报