zoukankan      html  css  js  c++  java
  • python jinja 模板教程

    前段时间需要做一个模板处理的工作,因为需要在模板里面进行逻辑处理,简单的元组字符串替换和关键字字符串替换已经不能满足需求了。所以选择python的第3方模板引擎来实现这个功能。目前大家用的比较多的模板引擎主要是:mako和jinja。 我对比了下,发现jinja的模板引擎和django的语法还是比较相似的,于是我选择了jinja作为我的模板引擎。

    首先我到jinja的官网上下载了源码包,并且进行了安装。然后看了下官方的文档,进行了简单的一些功能的测试,为以后的开发做准备。

    现在开始简单的操作:
    先在python里面进行模板的启动和赋值

    env = Environment(loader=PackageLoader('mbtest', 'templates'))###mbtest是一个模块,里面内容可以随意写,tempaltes是模板的文件夹名,jinja模板可以操作模板的列表。

    tpl = env.get_template('b2b-product.php')##模板名称
    randarticle = rand_article(randnum)
    keyword = ‘test’
    minfo = []
    displayinfo = {'ptitle':ptitle,'pdescription':pdescription}##python有的时候可以把字典看做对象来操作。里面的key就是对象的属性,val则是对象的属性值。

    minfo.append(displayinfo)

    tplcontent = tpl.render(minfo=minfo,keyword=keyword,randarticle=randarticle)##模板变量赋值

    模板处理:
    这里只是简单的进行模板的赋值,模板的循环输出等。

    tpl.render(minfo=minfo,keyword=k[1],randarticle=randarticle)

    keyword在模板里输出是{{keyword}} 变量的格式都是{{}}
    语句在模板里面输出是{% %} 都和django的语法比较相似,如果熟悉django的话,会感觉非常的亲切。

    {% for k in minfo %}
    {{k.ptitle}}
    {{k.pdescription}} 
    {% endfor %}


    这个只是简单的进行一些模板的操作,后续我会更新一些更加复杂的应用,你也可以参考一下官方的文档

  • 相关阅读:
    07-图5 Saving James Bond
    07-图4 哈利·波特的考试(25 分)多源最短路,邻接矩阵
    最短路径问题
    最小生成树
    06-图3 六度空间(30 分)
    06-图2 Saving James Bond
    06-图1 列出连通集(25 分)邻接矩阵

    05-树9 Huffman Codes(30 分)
    集合及运算
  • 原文地址:https://www.cnblogs.com/wanpython/p/2794556.html
Copyright © 2011-2022 走看看