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类方法__init__和__del__构造、析构过程分析
Mar 06 Python
python实现的简单猜数字游戏
Apr 04 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
python命令行参数用法实例分析
Jun 25 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
python 中xpath爬虫实例详解
Aug 26 Python
分享8点超级有用的Python编程建议(推荐)
Oct 13 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
Django实现简单的分页功能
Feb 22 Python
python如何在word中存储本地图片
Apr 07 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
PHP实现文件安全下载
2006/10/09 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
PHP发送短信代码分享
2015/08/11 PHP
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
Python 错误和异常小结
2013/10/09 Python
Python下的twisted框架入门指引
2015/04/15 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
Win8下python3.5.1安装教程
2020/07/29 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
中学教师培训制度
2014/01/31 职场文书
政府门卫岗位职责
2014/04/29 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
离婚财产分配协议书
2014/10/21 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python