• <1>Python生成高质量Html文件:Pyh模块+Bootstrap框架


    一,介绍

                                 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/

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

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

    二、实操

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

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 from pyh import *
     5 
     6 page = PyH('接口测试报告')                   #第一步:需要先生成含标题的HTML模板
     7 page.addCSS('https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css')  #第二步:需要加载我们要使用的Bootstrap模板css文件,需要的话还可以加载js
     8 Container = page << body(id='Body', cl='bg-warning') << div(id="container",cl="container") #第三步:通过移位符“<<”,来生成所属标签;“<<”左侧最终必须是page
     9 
    10 # 报告标题 start
    11 Headrow = Container << div(id="Headrow", cl="row")
    12 Headrow << h1(id="HeadH1",align="center") << strong("API_AutoTest_Report  ",id="HeadTxt") + small("Sonny.zhang", id="author")
    13 Headrow << br()
    14 # 报告标题 end
    15 
    16 # 数据统计 start
    17 Totalrow = Container << div(id="Totalrow", cl="Totalrow") << div(cl="jumbotron")
    18 # --测试使用时间,测试用例总数--
    19 test_time_txt = ["测试总耗时:", "0:00:04.307585"]
    20 case_num = ["用例总数:", "7"]
    21 UTimerow = Totalrow << div(id="UTimerow", cl="row")
    22 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")
    23 UTimerow << div(cl="col-xs-12 col-md-6") << p(role="presentation") << span(case_num[0]) << span(case_num[1],cl="label label-primary")
    24 # --用例失败成功统计--
    25 Num1_txt = ["成功用例数(Pass):", "3"]
    26 Num2_txt = ["失败用例数(Fail):", "2"]
    27 Num3_txt = ["出错用例数(Error):", "2"]
    28 Num4_txt = ["未执行用例数(Block):", "1"]
    29 Amountrow = Totalrow << div(id="Amountrow", cl="row")
    30 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")
    31 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")
    32 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")
    33 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")
    34 # 数据统计 end
    35 
    36 # 测试计划 start
    37 Plans = Container << div(id="plans", cl="row")
    38 # --栏目标题--
    39 plans_title = "测试用例摘要"
    40 PlansTitle = Plans << div(id="plans-title", cl="panel panel-primary") << div(cl="panel-heading") << strong() << center(plans_title, cl="text-uppercase")
    41 
    42 # --一个测试计划-- start
    43 Plan1 = Plans << div(id="plan1", cl="col-xs-12 col-md-12") << table(cl="table table-striped")
    44 # ---一个标题--
    45 plan1_title = "测试计划【项目名称:APItest, 计划名称:user_operation】"
    46 Plan1 << center() << caption(plan1_title)
    47 # --一个列表--
    48 # 表头
    49 thead1 = ["ID", "执行编号", "用例ID", "用例外部ID", "用例名称", "用例套件", "执行结果", "运行时间"]
    50 Thead1 = Plan1 << thead()
    51 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])
    52 # 表体
    53 tbody1 = ["151", "20180804110924", "1079", "APItest-1", "获取token", "获取token", "Pass", "2018-08-04 11:09:24"]
    54 Error = "Error"
    55 Tbody1 = Plan1 << tbody()
    56 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])
    57 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])
    58 # --一个测试计划-- end
    59 # 测试计划 end
    60 
    61 # 测试用例 start
    62 Cases = Container << div(cl="row")
    63 # --栏目标题--
    64 cases_title = "用例执行明细"
    65 CasesTitle = Cases << div(cl="panel panel-primary") << div(cl="panel-heading") << strong(center(cases_title, cl="text-uppercase"))
    66 # --一个测试用例-- start
    67 Case1 = Cases << div(cl="col-xs-12 col-md-12") << table(cl="table table-striped")
    68 # ---一个标题--
    69 Case1_title = "测试计划【项目名称:APItest, 计划名称:user_operation】"
    70 Case1 << center() << caption(plan1_title)
    71 # --一个列表--
    72 # 表头
    73 thead1 = ["ID", "执行编号", "用例ID", "用例外部ID", "用例名称", "用例套件", "执行结果", "运行时间"]
    74 Case1Thead1 = Case1 << thead()
    75 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])
    76 # 表体
    77 tbody1 = ["151", "20180804110924", "1079", "APItest-1", "获取token", "获取token", "Pass", "2018-08-04 11:09:24"]
    78 Error = "Error"
    79 Case1Tbody1 = Case1 << tbody()
    80 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])
    81 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])
    82 # --一个测试计划-- end
    83 # 测试计划 end
    84 
    85 page.printOut('Pyh_Template.html')

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

     

  • 相关阅读:
    CF1439E
    CF1446
    CSP2020 游记
    CF1442
    CF1444E
    CF1444
    CF850F Rainbow Balls
    A
    uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数)
    loj536「LibreOJ Round #6」花札(二分图博弈)
  • 原文地址:https://www.cnblogs.com/1fengchen1/p/9440881.html
Copyright © 2020-2023  润新知