Python之web模板应用


Posted in Python onDecember 26, 2017

Python的web模板,其实就是在HTML文档中使用控制语句和表达语句替换HTML文档中的变量来控制HTML的显示格式,Python的web模板可以更加灵活和方便的控制HTML的显示,而且大大地减少了编程人员的工作量。

模板语法:

1、控制语句{% ... %}:控制语句需要用{% end %}来作为此语句结束标志,通常用来作循环控制、条件控制、模块控制等,可以更加方便的控制HTML内容的显示;

2、表达语句{{ ... }}:一条表达语句就相当于一条Python语句,不需要结束语句,{{和}}之间可以放入任何Python表达式,Python模板语法可以自动运行{{和}}中的语句并把运行结果显示在HTML模板中;

3、母板继承:在母板中使用{% block block_name %}{% end %}进行模块的占位,block_name可以自己定义,其他的都是固定的语法格式;在子模板中使用{% extends  "xxx.html" %}表示此HTML模板继承自“xxx.html”模板(母板),然后在子模板中使用{% block block_name %} ... {% end %}重新定义母板中占位的模块,子模板中定义模块内容就会显示在母板中占位的位置,不同的子模板中可以定义不同的模块内容来满足自身的需要;

4、模板导入:在一个HTML模板中使用{% include "xxx.html" %},就会将xxx.html的内容导入(嵌入)当前HTML模板中,一般会将一些公共内容写在一个模板中,然后导入到需要使用的模板中,以达到代码重用的效果,使模板编码更加简洁方便;

5、模板函数:

1)static_url("static_file_path"):导入静态文件,参数为静态文件的路径全名,例如<link href="{{ static_url(" rel="external nofollow" xxx.css") }}" rel="stylesheet" />,如果设置了静态文件路径(比如tornado.web.Application中参数settings的选项static_path),则该参数为设置的静态文件路径下的相对路径;

2)escape(string):将string中的$、<和>转换成对应的HTML字符串;

3)更新中...

下面是用tornado写的一个非常简单的web模板应用:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tornado.web
import tornado.ioloop
from tornado.options import define, options
define('port', default=8888, help='run on give the give port', type=int)

# 用于处理网页的请求
class MainHandler(tornado.web.RequestHandler):
  def get(self, *args, **kwargs):
    personinfodict = {
      'name': 'Jason',
      'age': 20,
      'gender': 'male',
    }
    itemlist = ['name', 'age', 'gender']
    # 将变量以参数的形式传入HTML模板中
    self.render('personinfo.html', itemlist=itemlist, personinfodict=personinfodict, welcome='hello guy!')

# 设置不同路由的网页对应的处理类
app = tornado.web.Application([
  (r'/', MainHandler)
])

# 开始主程序I/O循环
if __name__ == '__main__':
  app.listen(options.port)
  tornado.ioloop.IOLoop.instance().start()
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <!-- 使用表达语句输出变量的值 -->
  <title>{{ welcome }}</title>
</head>
<body>
  <ul><!-- 使用控制语句控制HTML内容的输出,也减少了许多工作量 -->
  {% for item in itemlist %}
    <li>{{ item }}: {{ personinfodict[item] }}</li>
  {% end %}
  </ul>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python文件与目录操作实例详解
Feb 22 Python
Python排序算法实例代码
Aug 10 Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
python如何基于redis实现ip代理池
Jan 17 Python
Python递归函数特点及原理解析
Mar 04 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 Python
5行Python代码实现一键批量扣图
Jun 29 Python
通过python+selenium3实现浏览器刷简书文章阅读量
Dec 26 #Python
如何在python中使用selenium的示例
Dec 26 #Python
Python使用Matplotlib实现Logos设计代码
Dec 25 #Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 #Python
Python实现生成随机数据插入mysql数据库的方法
Dec 25 #Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 #Python
Python实现生成随机日期字符串的方法示例
Dec 25 #Python
You might like
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
js数组操作学习总结
2013/11/04 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
python中树与树的表示知识点总结
2019/09/14 Python
学python安装的软件总结
2019/10/12 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
校本教研工作方案
2014/01/14 职场文书
团购业务员岗位职责
2014/03/15 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
战友聚会致辞
2015/07/28 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python