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基于分水岭算法解决走迷宫游戏示例
Sep 26 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
Dec 15 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
Python3.4解释器用法简单示例
Mar 22 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
Python实现二叉树的最小深度的两种方法
Sep 30 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
python多进程使用函数封装实例
May 02 Python
Django权限设置及验证方式
May 13 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 Python
Pycharm及python安装详细教程(图解)
Jul 31 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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
python能做什么 python的含义
2019/10/12 Python
python破解同事的压缩包密码
2020/10/14 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
个人简历自我评价范文
2014/02/04 职场文书
大型晚会策划方案
2014/02/06 职场文书
关于教师节的广播稿
2014/09/10 职场文书
小学大队委竞选口号
2015/12/25 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
在Django中使用MQTT的方法
2021/05/10 Python