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 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
简单介绍Python中的JSON使用
Apr 28 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
pytorch:model.train和model.eval用法及区别详解
Feb 20 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
python安装sklearn模块的方法详解
Nov 28 Python
教你怎么用python selenium实现自动化测试
May 27 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入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
js自带函数备忘 数组
2006/12/29 Javascript
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
Python实现身份证号码解析
2015/09/01 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python3实现高效的端口扫描
2019/08/31 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
python简单实现9宫格图片实例
2020/09/03 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
应聘医药代表职位求职信
2013/10/21 职场文书
班组长岗位职责
2014/03/03 职场文书
倡议书格式
2014/04/14 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
教师个人自我评价
2015/03/04 职场文书
战友聚会致辞
2015/07/28 职场文书