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实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
python3实现域名查询和whois查询功能
Jun 21 Python
python中的变量如何开辟内存
Jun 26 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
python神经网络编程之手写数字识别
May 08 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 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
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
html读出文本文件内容
2007/01/22 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
python适合做数据挖掘吗
2020/06/16 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
合作意向书
2014/07/30 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
python基础详解之if循环语句
2021/04/24 Python
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python