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实现的简单文本类游戏实例
Apr 28 Python
python追加元素到列表的方法
Jul 28 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
python中requests小技巧
May 10 Python
Python内置函数 next的具体使用方法
Nov 24 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
python字符串替换第一个字符串的方法
Jun 26 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
Django项目后台不挂断运行的方法
Aug 31 Python
深入了解Python 变量作用域
Jul 24 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
Javascript 篱式条件判断
2008/08/22 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Python中str.join()简单用法示例
2018/03/20 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
大专生工程监理求职信
2013/10/04 职场文书
初中教师业务学习材料
2014/05/12 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript