模板渲染jnja2模块

模板的引入:

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

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

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

jinja2模板渲染格式案例:

index.html

 <!doctype html>

 <html lang="en">

 <head>

     <meta charset="UTF-8">

     <style>

         table,th,td{

             border: 1px solid black;

             border-collapse:collapse;}

     </style>

     <title>jinja2渲染模板</title>

 </head>

 <body>

     <div>

         <table>

             <thead>

             <tr>

                 <th>姓名</th>

                 <th>爱好</th>

             </tr>

             </thead>

             <tbody>

             <tr>

                 <td>{{name}}</td>

                 <td>

                     <ul>

                         {% for hobby in hobbylist%}

                         <li>{{hobby}}</li>

                         {% endfor %}

                     </ul>

                 </td>

             </tr>

             </tbody>

         </table> 

     </div>

 </body>

 </html>

index.html

server服务端:

 from wsgiref.simple_server import make_server#wsgiref基于模块原生socket的TCP通信服务程序

 from jinja2 import Template         #渲染模板

 info=[{"zhang":["爬山","看书","旅游"]}]

 def apllication(environ,start_response):

     start_response("200 OK",[("Content-Type","text/html")])

     path=environ["PATH_INFO"]

     if path=="/":

         with open("index.html","r",encoding="utf-8")as f:

             data=f.read()

         temple=Template(data)#渲染模板

         # 调用render方法进行数据渲染加载

         ret=temple.render({"name":"zhang","hobbylist":["爬山","看书","旅游"]})

         return [ret.encode("utf-8")]

     else:

         data=b"Sorry:404 not fond!"

         return [data]

 if __name__ == '__main__':

     httpd=make_server("127.0.0.1",8888,apllication)

     httpd.serve_forever()

server端代码

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

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

模板渲染jnja2模块的更多相关文章

  1. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  2. 【nodejs笔记3】Express基本用法,和路由控制,和模板渲染ejs

    1. 路由控制的工作原理 //routes/index.js中的代码//访问主页时,调用ejs模板引擎,渲染index.ejs模板文件,生成静态页面,并显示在浏览器中.router.get('/', ...

  3. Flask -- 静态文件 和 模板渲染

    静态文件 一般用于存放图片,样式文件(css, js等) 保存位置:包中或者文件所在目录创建一个 static 目录 访问:在应用中使用 /static/...即可访问 , 更好的方式是使用url_f ...

  4. Django模板渲染

    一 . 语法 # 关于模板渲染只需要记住两种语法就可以: 1.{{ }} # 里面写变量 2.{% %} # 里面写与逻辑相关的,比如for循环 二 . 变量名 在django的模板语言中按照语法: ...

  5. day053 url反向解析图解 模板渲染

    一.语法 两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二.变量 1. 可直接用  {{ 变量名 }} (可调用字符串, 数字 ,列表,字典,对象等) ...

  6. Django 学习第二天——URL路由及模板渲染方式

    URL 的概念及格式: URL的引入:客户端:知道了url 就可以去进行访问: 服务端:设置好了url,别人才能访问到我 URL :网址(全球统一资源定位符):由 协议,域名(ip port) ,路径 ...

  7. web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例

    Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...

  8. Django初探(模板渲染、模板语音、simple_tag、母版子版、静态配置文件)

    一.首先我们用PyCharm来创建一个Django项目 终端命令:django-admin startproject sitename 图形创建:   这样一个Django项目就创建完成了,上面可以看 ...

  9. Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件

    一.首先我们用PyCharm来创建一个Django项目 终端命令:django-admin startproject sitename 图形创建:   这样一个Django项目就创建完成了,上面可以看 ...

随机推荐

  1. 播放声音 (c++) (windows)

    自己看自己看自己看自己看自己看自己看 在<windows.h>中 一:BOOL WINAPI MessageBeep (_in UINT uType ); 播放一个波形文件 (也就是wac ...

  2. Hyperledger Fabric基础知识

    文章目录 什么是Hyperledger Fabric? Hyperledger架构是怎么工作的? Hyperledger交易如何执行 总结 Hyperledger Fabric基础知识 本文我们会介绍 ...

  3. Python中字符串输出带颜色

    格式:\033[显示方式;前景色;背景色m 说明:前景色            背景色           颜色---------------------------------------30    ...

  4. 让webpack打包支持ES7的async/await语法

    npm install --save-dev babel-plugin-transform-runtime npm install --save babel-runtime .babelrc配置 { ...

  5. mysql查询连接数

    最近公司的测试服务器数据库经常是连接爆满,几次加大了依旧满了. 明明只有几个人在用这个数据库,但是连接数到了三四百.于是就想是谁一直开着连接不释放,于是写了个SQL查了下连接使用情况. SQL如下: ...

  6. linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...

    linux和windows互传文件 第一种:在linux主机上下载lrzsz软件包 1.yum install lrzsz 2.通过rz命令上传window的文件到linux主机上 用过sz 文件名下 ...

  7. P2024 食物链(种类并查集)

    P2024 [NOI2001]食物链 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动 ...

  8. 8) drf 三大认证 认证 权限 频率

    一.三大认证功能分析 1)APIView的 dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial(request, *ar ...

  9. 解决python语言的工具pycharm以及Windows电脑安装pygame模块的问题

    人生苦短,我用python,python作为一门当今时代潮流性的语言,已经成为大多数的年轻程序猿们向往的目标,python中有许多的库, 其中有一个pygame库是作为开发2D游戏必不可少的开发库,是 ...

  10. 《Docker从入门到跑路》之镜像和容器的基本操作

    一.获取镜像 官方提供了一个公共镜像仓库Docker Hub,默认是从这上面获取镜像的. 搜素镜像使用docker search 命令: # docker search --help Usage: d ...