Python基础 Python面向对象 Python3.X新特性 pyqt编程实战

Template-Tag与Filter



  既然我们用到了模板,那就看看模板应该怎样玩。实际上在学习模板的时候,肯定要考虑在模板里面,要加一些动态的内容。动态内容如何去加?先说一下在views里面调用了模板,模板传值也是在views里面。


  在这儿定义一个变量,name='sundy',这个变量怎样传值进来呢?在后面紧跟着参数就行了。


  这里有一个特别简单的方法,直接有一个方法调用locals,它会把函数里面的所有变量的定义,它会把这些内容全部默认地按照这些内容全部传到这个模板里面来。模板要用的时候应该怎样玩?在模板使用某个值的时候,用两个大括号。这里直接把name放进去就行了。这就是模板的传值和用值的方式。


  这里还会有一些语法类的东西,比方说if then。这里语法就是用一个大括号加一个百分号,if age > 18。还可以for a in 3。这里大括号加百分号和两个大括号有什么区别呢?在模板里面有一个tags的概念,tags的形态实际就是大括号加百分号。


这里面有一些标签,比如block/endblock,是成对出现的。


  除了block一段代码之外呢,还有comment/endcomment表示注释。


csrf_tocken在做表单提交和验证的时候通过这个表示站内的提交信息,是用来做安全校验的。比如在登陆的时候,就需要用到这样的一个方式,去告诉服务器端。


  cycle就是一个循环序列。在做一些表单的时候,常常会有那种双行的背景是白色,单行的背景是灰色,这时候就可以用cycle的方式。


  if/else/elif/endif是一种成对出现的方式。for/empty/endfor,在做一个博客的列表时,我们需要从数据库里面去读取,读取的时候就需要通过这个for循环。


ifchanged/ifequal/ifotequend这些都是用来判断值是否改变等。这个语法注意,这个语法不是python语法,而是这个模板引擎支持的语法标签。还有一些包含概念,可以做博客的阶段的时候,就可以通过这种方式去进行一个包含。我们做网站的时候,页头和页脚是重复利用的,我们通过一个include,我们定义一个公用段的,然后通过include把它包含进来。


  除了这块儿,我们常常用在Django里还会有一个extend的概念。扩展是很有意思的,我们在商业项目里面都会用得到。这是个页面,头部和脚部都是公用的,这时候定义一个base,这个base包含了所有代码,并把中间这一块定义为block content,以后的页面就可以用extend扩展,这样扩展下来,这些默认地都已经有了,只需要去修改一下blog title就可以了。这有点类似于继承的概念。


  static静态文件的引用。除了tags,还有一些Filters,过滤器。添加一个值add。语法,就是带值的呈现,两个大括号,然后这个值再加一个通道符,后面跟上Filter的名字,冒号,然后一个值。capfirst首字母大写。center居中。cut截断。当然这些其实就是一些过滤器的处理。比方说,穿进来一个值,这个值是当前的时间,你希望这个时间按照固定的格式去显示,这时候就会用到Filter,全部进行小写。


  在很多模板引擎里面,都会有这样一个概念。在模板的时候,就学两个概念,一个叫tage,一个叫Filter。



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127

您有一个双11钜惠红包未领取

客服热线 400-862-8862

回到顶部