美文网首页python之路
python中jinja2模板引擎的使用

python中jinja2模板引擎的使用

作者: 非鱼2018 | 来源:发表于2020-07-25 21:55 被阅读0次

jinja2模板引擎:
pip install jinja2
一。jinja2语法:
1.一般变量<li>hello {{name}}</li>
2.{#普通列表#}
{% for user in users %}
<li>hello {{user}}</li>
{% endfor %}
{#字典列表#}
{% for userinfo in userinfos %}
<li>总个数:{{loop.length}}</li>
<li>{{loop.index}}</li>
<li>{{userinfo.username}}:{{userinfo.password}}</li>
{% endfor %}
3.{#if else的使用#}
{% if user=='feiyu1009' %}
<li>hello feiyu1009</li>
{% else %}
<li>sorry not you!!</li>
{% endif %}

二。简单使用
1.首先建立templ文件夹,建立模板文件temp.html,内容:

<html>
<head>
    <title>temp1</title>
</head>
<body>
 {{name}}
{#普通列表#}
{% for user in users %}
<li>hello {{user}}</li>
{% endfor %}


{#字典列表#}
{% for userinfo in userinfos %}
<li>总个数:{{loop.length}}</li>
<li>{{loop.index}}</li>
<li>{{userinfo.username}}:{{userinfo.password}}</li>
{% endfor %}


</body>
</html>

2.jinja_demo.py

# jinja_demo1
import sys
from jinja2 import PackageLoader, Environment, FileSystemLoader

# sys.path.append('../..')
# 1.packageloader
# env = Environment(loader=PackageLoader('demo1', 'templete'))
# template = env.get_template('temp.html')
# content=template.render(name='visitor')


# 2.FilesystemLoader 列表变量,字典变量

env = Environment(loader=FileSystemLoader('../templete'))
template = env.get_template('temp2.html')
content = template.render(users=['黄飞鸿', '霍元甲'],userinfos=[{"username":'feiyu1009',"password":'888888'},
                                                          {"username":'feiyu3009',"password":'888888'}])
#生成html文件
with open('temp2_result.html', 'w') as f:
    f.write(content)

三。实战。抓取本人简书首页文字列表并生成html
temp文件内容temp2.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>temp2</title>
</head>
<body>
<table>
    <tr><th>序号</th><th>标题</th></tr>
    {% for url in urls %}
    <tr>

    <td>{{loop.index}}</td>
    <td><a href="{{url.href}}">{{url.title}}</a></td>

    </tr>
    {% endfor %}
</table>

</body>
</html>

py文件:jinja_demo2.py

from jinja2 import PackageLoader, Environment, FileSystemLoader
from bs4 import BeautifulSoup as BS

def get_data():
    base_url = "https://www.jianshu.com"
   #懒得安装selnium了,直接把首页的源码赋值到本地解析了
    with open(r'D:\python\sample\demo1\字符串文本处理\jianshu.html', 'r', encoding='utf-8') as f:
        res = f.read()
    soup = BS(res, 'lxml')
    print(soup.select('a.title'))
    for a in soup.select('a.title'):
        yield {"href": base_url + a['href'],
               "title": a.text
               }


if __name__ == '__main__':
    urls = []
    for i in get_data():
        urls.append(i)
    print(urls)
    env = Environment(loader=FileSystemLoader('../templete'))
    template = env.get_template('temp2.html')
    content = template.render(urls=urls)
    with open('res0701.html', 'w') as f:
        f.write(content)

执行后生成html:


image.png

相关文章

网友评论

    本文标题:python中jinja2模板引擎的使用

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