pythonweb框架模板_python的Web框架,Django模板标签及模板的继承

模板标签

在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢。

给定的例子数据

views传递数据给html

1 from django.shortcuts importrender2

3 defindex(request):4

5 students =[6 {'id':12, 'name':'张三', 'age':19, 'sex':'男'}7 {'id':22, 'name':'李思', 'age':19, 'sex':'女'}8 {'id':25, 'name':'王五', 'age':19, 'sex':'男'}9 {'id':43, 'name':'赵柳', 'age':19, 'sex':'女'}10 {'id':88, 'name':'孙奇', 'age':19, 'sex':'男'}11 ]12

13 return render(request,'teacher/index.html',context={14 'students':students,15 })

for循环标签

1

2

3

4

序列

5

姓名

6

年龄

7

性别

8

9

10

11 {% for stu in students %}12

13

14

{{ stu.id}}

15

{{ stu.name }}

16

{{ stu.age }}

17

{{ stu.sex }}

18

19

20 {% endfor %}21

22

输出的结果为: css样式有过调整,请忽略样式

forloop:序号排列

1

2

3

4

从1开始的正向排序

5

从0开始的正向排序

6

以1结尾的倒序

7

以0结尾的倒序

8

9 {% for stu in students %}10

11

12

{{ forloop.counter}}

13

{{ forloop.counter0 }}

14

{{ forloop.revcounter }}

15

{{ forloop.revcounter0 }}

16

17 {% endfor %}18

19

输出的结果为:

if:if判断

1

2

3

4

从1开始的正向排序

5

从0开始的正向排序

6

以1结尾的倒序

7

以0结尾的倒序

8

9 {% for stu in students %}10

11

12 == 两头需要空格13

14

{{ forloop.counter}}

15

{{ stu.name }}

16

{{ stu.age }}

17

{{ stu.sex }}

18

19 {% endfor %}20

21

输出结果为:

简单获取url

views简单配置点击id所展示的页面

1 defst_id(request, pk):2 return HttpResponse('学生ID为%s的详情页' % pk)

对序号设置点击的跳转url

1

2

3

4

从1开始的正向排序

5

从0开始的正向排序

6

以1结尾的倒序

7

以0结尾的倒序

8

9 {% for stu in students %}10

11

12

13

{{ forloop.counter}}

14

{{ stu.name }}

15

{{ stu.age }}

16

{{ stu.sex }}

17

18 {% endfor %}19

20

输出结果:

点击序列为1的网址显示:

url标签:动态获取url,返回一个命名(views中path里面的name的值)了的URL的绝对路径

1

2

3

4

从1开始的正向排序

5

从0开始的正向排序

6

以1结尾的倒序

7

以0结尾的倒序

8

9 {% for stu in students %}10

11

12 通过url标签,动态生成对应的url网址,此处的'teacher:st_id'13 **需要在views中配置其中的path的name,name和此处的value需要一一对应。**14

{{ forloop.counter}}

15

{{ stu.name }}

16

{{ stu.age }}

17

{{ stu.sex }}

18

19 {% endfor %}20

21

for in empty 判断空置渲染默认的

1 {% for i in stu%}2

3 {% empty %}4

5

6 {% emdfor %}

with:类似于as

第一种写法:

1 {% with stu=students.2%}2 stu就可以拿出来使用了3 {% endwith %}

第二种写法

1 {% with test_name as tn %}2 1111{{ tn }}3 2222{{ tn }}4 {% endwith %}

autoescape 转义开关 同过滤器的safe

1 {% autoescape off %}2 {{ html }}3 {% endautoescape %}

模板的引入

include 模板的引入,把写好的html模板添加到我们需要的html中,在html代码中添加

1

2 {% include 'teacher/ad.html' %}3

输出结果

模板的继承

extends继承标签:extends代买写在html的最上面,首行,在此行下面的代码无效。

被引入的内容写在block中

1

2 {% extends 'teacher/base.html'%}

block自定义标签:在模板html中挖坑

base模板文件.html

1 默认写css的坑2 {% block link%}3 {% endblock %}4

5

6 {% block conrent(自定义名称) %}7

8

9

模板内的数据

10 {% endblock %}11

12

13 {% block domready %}14 {% endblock %}

被引入的html文件,css,js,html代码都是此种方法写入。对应上面的模板

1 {% extends 'teacher/base.html'%}2 {% load static %}3

4 {% block link %}5 带入css代码6

7 {% endblock %}8

9 {% block conrent %}10

我是被展示的数据

11 {% endblock %}12

13 {% block domready %}14

15 {% endblock %}

总结:

模板标签语法:

1 {% tag %} {% endtag %} 需要结束收尾的2

3 {% tag 参数 参数 %} 例如 url

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值