美文网首页
jinja2 模板使用

jinja2 模板使用

作者: geofer | 来源:发表于2017-10-11 19:23 被阅读0次

task

有时候需要把数据(比如csv,或者\t分割)转换成html,方便查看。

jinja安装

pip install Jinja2
doc: http://docs.jinkan.org/docs/jinja2/index.html

过程

demo数据

1,2,3,4,5
6,7,8,9,10

把这两行数据渲染在表格里

  1. 创建your_template.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="cmn-Hans-CN">
    <head>
        <title>
            format
        </title>
        <meta charset={{ encoding }}>
        <style type="text/css">
            body{FONT-SIZE: 13px; COLOR: #fffffff; LINE-HEIGHT: 19px;word-spacing:1px}
            table{border-collapse:collapse; border: 1px;} th{background: #3e83c9; border:
            1px solid #95bce2;font-weight:bold;} td{padding: 4px;border: 1px solid
            #95bce2;vertical-align: top;background-color:expression((this.parentElement.sectionRowIndex%2==1)?'#ECF6FC':'#ffffff');
            text-aligin:right;} td.name {font-weight:bold;} td.top {background: #d2e9ff;}
            td.bg {background: #f0f0f0;}
        </style>
    </head>
    <body>
        <table>
            <tr>
                <th nowrap="">
                    mt
                </th>
                <th nowrap="">
                    flow
                </th>
                <th nowrap="">
                    总消费
                </th>
                <th nowrap="">
                    关闭消费
                </th>
                <th nowrap="">
                    关闭占比
                </th>
                <th nowrap="">
                    打开占比
                </th>
            </tr>
            {% for item in data %}
            <tr>
                <td class="bg">
                    {{ item[0] }}
                </td>
                <td class="bg">
                    {{ item[1] }}
                </td>
                <td class="bg">
                    {{ item[2] }}
                </td>
                <td class="bg">
                    {{ item[3] }}
                </td>
                <td class="bg">
                    {{ item[4] }}
                </td>
                <td class="bg">
                    {{ item[5] }}
                </td>
            </tr>
            {% endfor %}
        </table>
    </body>

</html>
  1. html生成脚本gen_html.py
 # encoding=utf-8
 import sys
 from jinja2 import Environment, FileSystemLoader

 env = Environment(loader=FileSystemLoader('./', encoding='utf-8'))

 data = []
 with open('./data') as f:
     for line in f:
         line = line.decode('gb18030', 'ignore').strip()
         cols = line.split(u'\t')
         data.append(cols)

 template = env.get_template('your_template.html')
 html = template.render(date=date, encoding='utf-8', data=data)  # unicode string
 print >> sys.stdout, html.encode('utf-8', 'ignore')
  1. email
 python gen_html.py > temp.html

 email_to="xxx@xxx.com"
 /usr/lib/sendmail -t <<< "To: $email_to
 From: yyy@yyy.com
 Subject: demo
 Content-type: text/html; charset=utf-8
 $(cat temp.html)
 "

相关文章

  • Ansible之Jinja2模板—5

    jinja2的基本概述jinja2模板与ansible的关系Ansible使用jinja2模板jinja2 模板A...

  • templates(模板)

    jinja2 Flask中使用jinja2模板引擎jinja2是由Flask作者开发,模仿Django的模板引擎 ...

  • Templates 2018-08-28

    1. jinja2 Flask中使用jinja2模板引擎 jinja2是由Flask作者开发,模仿Django的模...

  • flask.pocoo.org/docs/0.12/templa

    原文链接 模板 Flask 使用 Jinja2 作为默认模板引擎。你完全可以使用其它模板引擎。但是不管你使用 哪种...

  • Jinja2 模板用法

    1. 语法 在jinja2中,存在三种语法: 控制结构 {% %} 变量取值 {{ }} jinja2模板中使用 ...

  • flask-模板

    一、模板的定义 二、模板引擎 flask使用jinja2作为默认模板引擎 2-1:默认配置 template_fo...

  • Flask的jinja2模板中自定义过滤器的使用

    Flask的jinja2模板中自定义过滤器的使用 ...

  • Flask - 07 模板

    Flask使用Jinja2 模板,并通过render_template()函数返回模板给客户端 Flask会在te...

  • Jinja2模板

    博主在使用Flask过程,预在项目中使用中Jinja2模板。本文为博主Jinja2的学习笔记,主要为了形成对Jin...

  • Jinja2 变量 过滤器 测试器

    循环变量 上下文变量 模板全局变量 Jinja2 模板全局函数 Flask 模板全局函数 Jinja2 常用过滤器...

网友评论

      本文标题:jinja2 模板使用

      本文链接:https://www.haomeiwen.com/subject/xrtgyxtx.html