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使用cPickle模块序列化实例
Sep 25 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
Python中 map()函数的用法详解
Jul 10 Python
Django基础知识 web框架的本质详解
Jul 18 Python
python如何将两个txt文件内容合并
Oct 18 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
Jan 09 Python
Python3接口性能测试实例代码
Jun 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
PHP中的integer类型使用分析
2010/07/27 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
jQuery 全选效果实现代码
2009/03/23 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
Python内建数据结构详解
2016/02/03 Python
python奇偶行分开存储实现代码
2018/03/19 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
Python3模拟登录操作实例分析
2019/03/12 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
协议书范本
2014/04/23 职场文书
社区活动总结报告
2014/05/05 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
诚信承诺书
2015/01/19 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers