zoukankan      html  css  js  c++  java
  • 模板渲染jnja2模块

    模板渲染jnja2模块

    模板的引入:

            在返回动态页面时,上述我们在08web框架返回每次访问的时间,利用自己写的占位符进行字符串替换进行动态响应;

            在实际应用中,完全可以从数据库中读取数据,然后替换html页面中的相关内容(专业名词就是模板渲染,后台渲染先渲染,再返回给浏览器渲染),响应给浏览器动态数据。

           数据替换的过程就是通过模板渲染数据,本质就是对HTML中的某些特殊符号进行了替换来展示动态数据。这里常用的特殊符号的定义有现成的渲染模板工具:jinja2模块(非内置模块,配置好pip环境变量的前提下在cmd交互式窗口执行:pip install jinja2或者在pycharm设置中的项目环境变量进行引入)。

     

    jinja2模板渲染格式案例:

    index.html

     1 <!doctype html>
     2 
     3 <html lang="en">
     4 
     5 <head>
     6 
     7     <meta charset="UTF-8">
     8 
     9     <style>
    10 
    11         table,th,td{
    12 
    13             border: 1px solid black;
    14 
    15             border-collapse:collapse;}
    16 
    17     </style>
    18 
    19     <title>jinja2渲染模板</title>
    20 
    21 </head>
    22 
    23 <body>
    24 
    25     <div>
    26 
    27         <table>
    28 
    29             <thead>
    30 
    31             <tr>
    32 
    33                 <th>姓名</th>
    34 
    35                 <th>爱好</th>
    36 
    37             </tr>
    38 
    39             </thead>
    40 
    41             <tbody>
    42 
    43             <tr>
    44 
    45                 <td>{{name}}</td>
    46 
    47                 <td>
    48 
    49                     <ul>
    50 
    51                         {% for hobby in hobbylist%}
    52 
    53                         <li>{{hobby}}</li>
    54 
    55                         {% endfor %}
    56 
    57                     </ul>
    58 
    59                 </td>
    60 
    61             </tr>
    62 
    63             </tbody>
    64 
    65         </table> 
    66 
    67     </div>
    68 
    69 </body>
    70 
    71 </html>
    index.html 

    server服务端:

     1 from wsgiref.simple_server import make_server#wsgiref基于模块原生socket的TCP通信服务程序
     2 
     3 from jinja2 import Template         #渲染模板
     4 
     5  
     6 
     7 info=[{"zhang":["爬山","看书","旅游"]}]
     8 
     9  
    10 
    11 def apllication(environ,start_response):
    12 
    13     start_response("200 OK",[("Content-Type","text/html")])
    14 
    15     path=environ["PATH_INFO"]
    16 
    17     if path=="/":
    18 
    19         with open("index.html","r",encoding="utf-8")as f:
    20 
    21             data=f.read()
    22 
    23  
    24 
    25         temple=Template(data)#渲染模板
    26 
    27         # 调用render方法进行数据渲染加载
    28 
    29         ret=temple.render({"name":"zhang","hobbylist":["爬山","看书","旅游"]})
    30 
    31         return [ret.encode("utf-8")]
    32 
    33     else:
    34 
    35         data=b"Sorry:404 not fond!"
    36 
    37         return [data]
    38 
    39  
    40 
    41 if __name__ == '__main__':
    42 
    43  
    44 
    45     httpd=make_server("127.0.0.1",8888,apllication)
    46 
    47     httpd.serve_forever()
    server端代码 

           以上案例仅仅只演示了一个简单的使用方式,在实际应用中很多都是从数据库加载的,案例中的信息会有很多条,每个人都有对应的兴趣爱好,这样可以运用模板渲染进行动态的返回数据,在此就不在演示。

    django中的渲染模板使用的并不是jinja2模块
     

  • 相关阅读:
    Trap 冷启动与热启动告警
    SNMP支持IPv6
    跨函数使用内存
    动态内存分配
    结构体
    指针和数组
    组合模式
    类方法实用点语法调用
    数据结构与算法定义
    RAC初步使用
  • 原文地址:https://www.cnblogs.com/open-yang/p/11182873.html
Copyright © 2011-2022 走看看