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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
python在linux中输出带颜色的文字的方法
Jun 19 Python
python3编写C/S网络程序实例教程
Aug 25 Python
python实现类的静态变量用法实例
May 08 Python
Python统计文件中去重后uuid个数的方法
Jul 30 Python
Python环境变量设置方法
Aug 28 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
python远程邮件控制电脑升级版
May 23 Python
详解numpy的argmax的具体使用
May 27 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
Python序列化pickle模块使用详解
Mar 05 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
php xml 入门学习资料
2011/01/01 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
jQuery 动画基础教程
2008/12/25 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
Random 在 Python 中的使用方法
2018/08/09 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
python为什么要安装到c盘
2020/07/20 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
机械设计制造专业个人求职信
2013/09/25 职场文书
大三在校生电子商务求职信
2013/10/29 职场文书
关于爱情的广播稿
2014/01/16 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
超市食品安全承诺书
2015/04/29 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技