列表筛选

来源:7-6 列表筛选功能

qq_盲区行者_0

2017-11-19

下面有5个问题,望老师能给解答,感谢!


<a href="?ct=pxjg"><span class="{% ifequal category 'pxjg' %}active2{% endifequal %}">培训机构</span></a>

问题1:这个ifequal里面的category是后台传过来的,同时它也是不是我们前台点击a标签后传给后端的ct呐?这里好晕啊

问题2:  后面的 'pxjg' 又是取的哪个值? 这里混乱了,老师帮缕下思路吧。

<a href="?order_by=&price=all"><span class="{% ifequal city_id '' %}active2"{% endifequal %}>全部</span></a>

问题3:这个city_id为空的意思是不是用户没有点击a标签,所以没有传给后端数据,后端默认是空字符串,所以这里这样判断呐?我大体了解了一下问题3的整体思路,但是还不是很透彻,比如为什么要用后端传来的数据和空字符串对比,它自己是不是空字符串它自己不知道吗,老师帮缕下思路吧,虽然知道代码要这样写,但是为什么这样写不太明白,相信我要是把这个弄透彻了,前后端交互这个坎也能前进一大步。

<a href="?city={{ city_id }}"><span class="{% ifequal category '' %}active2"{% endifequal %}">全部</span></a>

问题4:上面为了让帅选类别的时候不也把city的选择带上,用了?city={{ city_id }},就是说把city也传给后端,{{ city_id }}是后端传给前端的数据,由于点类别筛选前就已经点击了城市帅选,因此这个{{ city_id }}里是由数据的,不会每次都是空,是这样理解的吗,老师?

问题5: 在我们点击筛选的城市或者类别的时候,页面是都刷新的,我们还要在a标签中加入&把别的类别筛选也放进来,这样多了的话很玛法,轻微老师建议用ajex异步请求可以解决这个问题吗,另还可以用什么解决这个问题,用vus.js框架吗?

写回答

1回答

bobby

2017-11-21

目前看来你是对template的机制存在疑惑, 应该是你把前端和模板弄混淆了, 没有搞清楚前端和后台模板之间的区别, template是用来生成html的模板, 前端也就是浏览器能得到的是后端通过网络传输给浏览器的最终html但是一个html的内容在不同的商品下实际上模板是一样的, 只是不同的商品需要动态填充数据到html模板中去, 这个好像 "{a} say hello to {b}".format(a="bobby" ,b="盲区行者" ), 你可以把template理解为复杂版的字符串格式化, 所以template中你能看到很多后端语法, 但是不同的语法是根据不同的框架来的, 比如django, jinja等等不同的框架模板语法都不一样, 这些都是后端来写的, 拿你第一个问题来理解

<a href="?ct=pxjg"><span class="{% ifequal category 'pxjg' %}active2{% endifequal %}">培训机构</span></a>

这里你可以把django的template中的html文件理解为"{a} say hello to {b}" 这个模板, category 就是(a="bobby" ,b="盲区行者" )传递到这个模板中的变量, django模板的引擎就是执行"{a} say hello to {b}".format(a="bobby" ,b="盲区行者" )这个语句生成最终的html并返回给浏览器, 所以如果你的category为空 那么最终的字符串就是 <a href="?ct=pxjg"><span class="">培训机构</span></a> 如果不为空就会给浏览器返回<a href="?ct=pxjg"><span class="active2">培训机构</span></a>剩下的事情就是属于前端的知识点了, 不知道这样你理解到没有。 其他的问题都是这个思路。


0
0

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程