django模板之自定义模板
使用环境:同上一篇django文章。
启动web服务:
cd py3/django-test1/test4
python manage.py runserver 192.168.255.70:8000
一、先演示在html模板中使用for标签循环:
编辑视图:
vimbookshop/views.pyfromdjango.shortcutsimportrenderfrom.modelsimport*#查询一个值#defindex(request):#hero=HeroInfo.objects.get(pk=1)#查询主键(pk)=1的条目#context={'hero':hero}#returnrender(request,'bookshop/index.html',context)#查询多个值,在html模板中循环defindex(request):list=HeroInfo.objects.filter(isDelete=False)context={'list1':list}returnrender(request,'bookshop/index.html',context)
编辑html模板:
vimtemplates/bookshop/index.html<!DOCTYPEhtml><html><head><title>Title</title></head><body>{{hero.hname}}<br>{{hero.showname}}<hr><ul>{%forheroinlist1%}<!--使用{{%for..in...%}}....{%endfor%}循环django传递过来的list1上下文对象,{{forloop.counter}}是显示循环的第几次--><li>{{forloop.counter}}:{{hero.showname}}</li><!--#点号解析顺序:<br>#1.先把hero作为字典,showname为键查找<br>#2.再把hero作为对象,showname为属性或方法查找<br>#3.最后把hero作为列表,showname为索引查找<br>--><!--{%empty%}是在视图函数中list=HeroInfo.objects.filter(isDelete=True)时,查询不存在的数据才显示的内容-->{%empty%}<li>没找到任何符合是数据!</li>{%endfor%}</ul></body></html>
浏览器访问:http://192.168.255.70:8000/
显示:
二、演示在html模板中使用if标签判断、注释、过滤器
仅修改html模板即可:
vimtemplates/bookshop/index.html<!DOCTYPEhtml><html><head><title>Title</title></head><body>{#这是单行注释#}{%comment%}这是多行注释{%endcomment%}<ul>{%forheroinlist1%}<!--使用{%if%}判断,循环出的结果中,奇数行字体显示为蓝色,偶数行为红色-->{%ifforloop.counter|divisibleby:"2"%}<!--除2运算使用过滤器(即|)--><listyle="color:red">{{forloop.counter}}:{{hero.showname}}</li>{%else%}<listyle="color:blue">{{forloop.counter}}:{{hero.showname}}</li>{%endif%}{%empty%}<li>没找到任何符合是数据!</li>{%endfor%}</ul></body></html>
浏览器访问:http://192.168.255.70:8000/
显示:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。