一,介绍

                             QQ交流群:585499566

  本文的目的是怎么使用Pyh+Bootstrap快速生成简约,大方,清新的Html页面,涉及到的技能:Python小白技能,Pyh会阅读中文文档,Html基础,Bootstrap能阅读懂中文文档

  Python:当然是Python3了...

  Pyh:是这位大神 https://code.google.com/p/pyh/wiki/UserManual  制作,需要连接代理才能查看哈,好在有人做了翻译:https://www.jianshu.com/p/dc2ddd8e80cc
在翻译连接里,有具体的使用描述,这里不做介绍了哈

功能介绍:

  • 自动格式化HTML标签
  • 高度可定制
  • 完全识别CSS和Javascript
  • 自动闭合标签
  • 面向对象的HTML编写方式

  Html:能够找到这篇文章,肯定是懂得使用HTML代码的,为了防止“小白”看到这篇文章不知所措,就贴上公认的HTML参考网站w3school:http://www.w3school.com.cn/tags/tag_html.asp

  Bootstrap:是css,js框架,可以美化的页面,将“丑八怪”变成“美少女”,哈哈... 这是中文使用地址,建议用3:https://v3.bootcss.com/

  这里让你们看下“丑八怪”与“美少女”的对比:

  是不是变的美了很多啊,啊,你说还不太美,想变成“西施”,那就需要你再帮帮它化下妆了......这好像证明了:天下了没有丑女人,只有懒女人

二、实操

  说的再多,却不贴代码,就是耍流氓,耽误阅读者的时间,浪费别人的青春

 #!/usr/bin/env python
# -*- coding:utf-8 -*- from pyh import * page = PyH('接口测试报告')                   #第一步:需要先生成含标题的HTML模板
page.addCSS('https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css')  #第二步:需要加载我们要使用的Bootstrap模板css文件,需要的话还可以加载js
Container = page << body(id='Body', cl='bg-warning') << div(id="container",cl="container") #第三步:通过移位符“<<”,来生成所属标签;“<<”左侧最终必须是page # 报告标题 start
Headrow = Container << div(id="Headrow", cl="row")
Headrow << h1(id="HeadH1",align="center") << strong("API_AutoTest_Report ",id="HeadTxt") + small("Sonny.zhang", id="author")
Headrow << br()
# 报告标题 end # 数据统计 start
Totalrow = Container << div(id="Totalrow", cl="Totalrow") << div(cl="jumbotron")
# --测试使用时间,测试用例总数--
test_time_txt = ["测试总耗时:", "0:00:04.307585"]
case_num = ["用例总数:", ""]
UTimerow = Totalrow << div(id="UTimerow", cl="row")
UTimerow << div(cl="col-xs-12 col-md-6") << p(role="presentation") << span(test_time_txt[0]) << span(test_time_txt[1], cl="label label-default")
UTimerow << div(cl="col-xs-12 col-md-6") << p(role="presentation") << span(case_num[0]) << span(case_num[1],cl="label label-primary")
# --用例失败成功统计--
Num1_txt = ["成功用例数(Pass):", ""]
Num2_txt = ["失败用例数(Fail):", ""]
Num3_txt = ["出错用例数(Error):", ""]
Num4_txt = ["未执行用例数(Block):", ""]
Amountrow = Totalrow << div(id="Amountrow", cl="row")
Num1 = Amountrow << div(id="Num1", cl="col-xs-12 col-md-3") << p(role="presentation") << span() << small(Num1_txt[0]) << span(Num1_txt[1], cl="label label-success")
Num2 = Amountrow << div(id="Num2", cl="col-xs-12 col-md-3") << p(role="presentation") << span() << small(Num2_txt[0]) << span(Num2_txt[1], cl="label label-danger")
Num3 = Amountrow << div(id="Num3", cl="col-xs-12 col-md-3") << p(role="presentation") << span() << small(Num3_txt[0]) << span(Num3_txt[1], cl="label label-warning")
Num4 = Amountrow << div(id="Num4", cl="col-xs-12 col-md-3") << p(role="presentation") << span() << small(Num4_txt[0]) << span(Num4_txt[1], cl="label label-default")
# 数据统计 end # 测试计划 start
Plans = Container << div(id="plans", cl="row")
# --栏目标题--
plans_title = "测试用例摘要"
PlansTitle = Plans << div(id="plans-title", cl="panel panel-primary") << div(cl="panel-heading") << strong() << center(plans_title, cl="text-uppercase") # --一个测试计划-- start
Plan1 = Plans << div(id="plan1", cl="col-xs-12 col-md-12") << table(cl="table table-striped")
# ---一个标题--
plan1_title = "测试计划【项目名称:APItest, 计划名称:user_operation】"
Plan1 << center() << caption(plan1_title)
# --一个列表--
# 表头
thead1 = ["ID", "执行编号", "用例ID", "用例外部ID", "用例名称", "用例套件", "执行结果", "运行时间"]
Thead1 = Plan1 << thead()
Thead1 << tr() << th(thead1[0]) + th(thead1[1]) + th(thead1[2]) + th(thead1[3]) + th(thead1[4]) + th(thead1[5]) + th(thead1[6]) + th(thead1[7])
# 表体
tbody1 = ["", "", "", "APItest-1", "获取token", "获取token", "Pass", "2018-08-04 11:09:24"]
Error = "Error"
Tbody1 = Plan1 << tbody()
Tbody1 << tr() << th(tbody1[0], scope="row") + td(tbody1[1]) + td(tbody1[2]) + td(tbody1[3]) + td(tbody1[4]) + td(tbody1[5]) + td(tbody1[6]) + td(tbody1[7])
Tbody1 << tr() << th(tbody1[0], scope="row") + td(tbody1[1]) + td(tbody1[2]) + td(tbody1[3]) + td(tbody1[4]) + td(tbody1[5]) + td(p(Error, cl="label label-danger")) + td(tbody1[7])
# --一个测试计划-- end
# 测试计划 end # 测试用例 start
Cases = Container << div(cl="row")
# --栏目标题--
cases_title = "用例执行明细"
CasesTitle = Cases << div(cl="panel panel-primary") << div(cl="panel-heading") << strong(center(cases_title, cl="text-uppercase"))
# --一个测试用例-- start
Case1 = Cases << div(cl="col-xs-12 col-md-12") << table(cl="table table-striped")
# ---一个标题--
Case1_title = "测试计划【项目名称:APItest, 计划名称:user_operation】"
Case1 << center() << caption(plan1_title)
# --一个列表--
# 表头
thead1 = ["ID", "执行编号", "用例ID", "用例外部ID", "用例名称", "用例套件", "执行结果", "运行时间"]
Case1Thead1 = Case1 << thead()
Case1Thead1 << tr() << th(thead1[0]) + th(thead1[1]) + th(thead1[2]) + th(thead1[3]) + th(thead1[4]) + th(thead1[5]) + th(thead1[6]) + th(thead1[7])
# 表体
tbody1 = ["", "", "", "APItest-1", "获取token", "获取token", "Pass", "2018-08-04 11:09:24"]
Error = "Error"
Case1Tbody1 = Case1 << tbody()
Case1Tbody1 << tr() << th(tbody1[0], scope="row") + td(tbody1[1]) + td(tbody1[2]) + td(tbody1[3]) + td(tbody1[4]) + td(tbody1[5]) + td(tbody1[6]) + td(tbody1[7])
Case1Tbody1 << tr() << th(tbody1[0], scope="row") + td(tbody1[1]) + td(tbody1[2]) + td(tbody1[3]) + td(tbody1[4]) + td(tbody1[5]) + td(p(Error, cl="label label-danger")) + td(tbody1[7])
# --一个测试计划-- end
# 测试计划 end page.printOut('Pyh_Template.html')

  在代码中我已经注释了Pyh的使用要点:“<<”,还有任何问题,可以加群进行解答,交流

<1>Python生成高质量Html文件:Pyh模块+Bootstrap框架的更多相关文章

  1. C#放缩、截取、合并图片并生成高质量新图的类

    原文:C#放缩.截取.合并图片并生成高质量新图的类 using System;using System.Drawing;using System.Drawing.Imaging;using Syste ...

  2. atitit.thumb生成高质量缩略图 php .net c++ java

    atitit.java thumb生成高质量缩略图 php .net c++ 1. 图像缩放(image scaling)---平滑度(smoothness)和清晰度(sharpness) 1 2.  ...

  3. Effective Python 编写高质量Python代码的59个有效方法

    Effective Python 编写高质量Python代码的59个有效方法

  4. C#剪切生成高质量缩放图片

    /// <summary> /// 高质量缩放图片 /// </summary> /// <param name="OriginFilePath"&g ...

  5. 【Python图像特征的音乐序列生成】使用Python生成简单的MIDI文件

    这个全新的Python音乐创作系列,将会不定期更新.写作这个系列的初衷,是为了做一个项目<基于图像特征的音乐序列生成模型>,实时地提取照片特征,进行神经网络处理,生成一段音乐. 千里之行, ...

  6. Highcharts结合PhantomJS在服务端生成高质量的图表图片

    项目背景 最近忙着给部门开发一套交互式的报表系统,来替换原有的静态报表系统. 老系统是基于dotnetCHARTING开发的,dotnetCHARTING的优势是图表类型丰富,接口调用简单,使用时只需 ...

  7. python生成可执行exe文件

    为什么要生成可执行文件 不需要安装对应的编程环境 可以将你的应用闭源 用户可以方便.快捷的直接使用 打包工具 pyinstaller 安装pyinstaller pip install pyinsta ...

  8. MPlayer-ww 增加边看边剪切功能+生成高质量GIF功能

    http://pan.baidu.com/s/1eQm5a74 下载FFmpeg palettegen paletteuse documentation 需要下载 FFmpeg2.6 以上 并FFmp ...

  9. python 生成 1900-2100 的二十四节气文件

    [学习笔记] 转载 #!/usr/bin/python3.7# -*- coding:utf-8 -*- '''整体思路1:根据公式算出节气日期 1900 年到 2100  200 年的时间2:特殊的 ...

随机推荐

  1. 程序员周末阿里面试,5分钟就被一道题秒杀:HashMap与Hashtable

    你们可能会想,我这么菜的吗?5分钟都坚持不了? 本文说起来会有点尴尬,毕竟这是我曾经经历过的故事 那时候的我还真菜,每天写着 if/ for 及一些简单的业务逻辑代码,虽工作有些日子了,但技术水平还停 ...

  2. CentOS 7.4 安装 K8S v1.11.0 集群所遇到的问题

    0.引言 最近打算将现有项目的 Docker 部署到阿里云上面,但是之前是单机部署,现在阿里云上面有 3 台机器,所以想做一个 Docker 集群.之前考虑是用 Docker Swarm 来做这个事情 ...

  3. Linux编程 9 (shell类型,shell父子关系,子shell用法)

    一. shell类型 1.1  交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...

  4. Android--UI之ListView

    前言 今天讲解一下Android平台下ListView控件的开发,在本篇博客中,将介绍ListView的一些常用属性.方法及事件,还会讲解ListView在开发中常用的几种方式,以及使用不通用的适配器 ...

  5. ClickHouse之访问权限控制

    研究ClickHouse也有几周了,今天来和大家说说ClickHouse的访问权限是怎么做的,ClickHouse不像MySQL那样,直接创建用户,而是需要在配置文件里面添加用户,一个简单的例子如下: ...

  6. 【整理】WDK 和 DDK异同

    WDK和DDK的作用 开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发 WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WIND ...

  7. 简单快速的让你的json解析速度快上加快

    背景 最近小编在做公司的一个需求.要求是把系统内的一些大型文本文件上传到第三方那里,而且第三方要求的交互数据的方式是采用post请求发送json串的形式进行的. 问题 做到中途才发现问题,由于单个文本 ...

  8. 网络协议抓包分析——ARP地址解析协议

    前言 计算机之间可以相互通信的前提是要知道对方的地址,才可以发送信息给其他计算机,就像别人要联系你也得先知道你的电话号码一样.这里的地址因为网络分层的原因就包括IP地址和MAC地址(即网卡地址.硬件地 ...

  9. docker常用命令2

    Docker作为一种开源的.优秀的容器化技术,目前受到越来越多公司的运用,下面是我工作中常用到的一些命令. 1.删除一个容器(删除之前先要停止该容器) docker stop 容器IDdocker r ...

  10. Perl分片技术

    分片(slice) 在perl中,如果想要取得一部分变量.一部分列表内容.一部分hash内容,可以采用分片(切片)的方式. 注意,perl并未提供字符串的切片方式,但可以使用内置函数substr()来 ...