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获取糗百图片代码实例
Dec 18 Python
python将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
python3实现windows下同名进程监控
Jun 21 Python
python3实现mysql导出excel的方法
Jul 31 Python
python的移位操作实现详解
Aug 21 Python
使用python远程操作linux过程解析
Dec 04 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python3.9.1环境安装的方法(图文)
Feb 02 Python
python中@contextmanager实例用法
Feb 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
PHP安装问题
2006/10/09 PHP
php下的权限算法的实现
2007/04/28 PHP
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python实现简单的可逆加密程序实例
2015/03/05 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
农场厂长岗位职责
2013/12/28 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
狂人日记读书笔记
2015/06/30 职场文书
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
windows系统搭建WEB服务器详细教程
2022/08/05 Servers