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中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
使用Django的模版来配合字符串翻译工作
Jul 27 Python
python字符串连接方法分析
Apr 12 Python
详解Python3操作Mongodb简明易懂教程
May 25 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
django使用xadmin的全局配置详解
Nov 15 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
django queryset相加和筛选教程
May 18 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 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下实现农历日历的代码
2007/03/07 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
js实现返回顶部效果
2017/03/10 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
python实现跨文件全局变量的方法
2014/07/07 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
机械工程师求职自我评价
2013/09/23 职场文书
大学生怎样进行自我评价
2013/12/07 职场文书
超市创业计划书
2014/09/15 职场文书
人事局接收函
2015/01/30 职场文书
爱国教育主题班会
2015/08/14 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技