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实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 Python
python实现转圈打印矩阵
Mar 02 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
python 导入数据及作图的实现
Dec 03 Python
简单了解Python读取大文件代码实例
Dec 18 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
python 爬取华为应用市场评论
May 29 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 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
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
php控制文件下载速度的方法
2015/03/24 PHP
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
Python操作MySQL简单实现方法
2015/01/26 Python
python发送邮件实例分享
2017/07/28 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
使用Tkinter制作信息提示框
2020/02/18 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
pycharm实现猜数游戏
2020/12/07 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
内容编辑个人求职信
2013/12/10 职场文书
老师对学生的寄语
2014/04/09 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
Golang 实现WebSockets
2022/04/24 Golang
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL