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读写文件操作示例程序
Dec 02 Python
web.py在模板中输出美元符号的方法
Aug 26 Python
web.py获取上传文件名的正确方法
Aug 26 Python
Python的Django框架中的select_related函数对QuerySet 查询的优化
Apr 01 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
HTML的form表单和django的form表单
Jul 25 Python
python for循环remove同一个list过程解析
Aug 14 Python
Python PO设计模式的具体使用
Aug 16 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
python实现简易学生信息管理系统
Apr 05 Python
python 实现矩阵填充0的例子
Nov 29 Python
python使用bs4爬取boss直聘静态页面
Oct 10 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+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
php查询内存信息操作示例
2019/05/09 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
javascript闭包入门示例
2014/04/30 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
详解Python中的多线程编程
2015/04/09 Python
初步解析Python下的多进程编程
2015/04/28 Python
python脚本监控docker容器
2016/04/27 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Python----数据预处理代码实例
2019/03/20 Python
python类共享变量操作
2020/09/03 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
行政专员岗位职责
2014/01/02 职场文书
安全标语口号
2014/06/09 职场文书
工作求职信
2014/07/04 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
你真的会用Mysql的explain吗
2022/03/31 MySQL