1.使用python从数据库读数据后自动生成较为美观的html文件

1.用 pandas.DataFrame.to_html() 可以直接转成 html 的 table,


一般处理数据或者报表我习惯使用 pandas,pandas.DataFrame 很方便处理二维表、excel等,也可以很方便地把从数据库获取的数据转成 DataFrame 结构。用 pandas.DataFrame.to_html() 可以直接转成 html 的 table,不过要控制前端显示还是得用 css,或者直接用 bootstrap 框架。


2.不过要控制前端显示还是得用 css,或者直接用 bootstrap 框架

下面的回答只管你如何美化html,不管你如何生成html.


html 是超文本,可以由css 和Javascript 来控制html 的外观。


推荐用Bootstrap


Bootstrap

http://getbootstrap.com/


3.jinja2


需要任意py36

#pip install -U Incantation

pip install Incantation-0.3.3-py3-none-any.whl


参考https://github.com/thautwarm/Incantation  doc



解决Python查询Mysql数据库信息乱码问题

#最后通过尝试将  json  模块导入,利用其 dumps 方法,问题得到解决

http://blog.csdn.net/mori66/article/details/54669232

https://www.cnblogs.com/jzss/p/5567318.html


  1. py生成html

官网例子

https://github.com/thautwarm/Incantation

#pip install -U Incantation

pip install Incantation-0.3.3-py3-none-any.whl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/python
# -*-coding:utf-8-*-
 
import os
import sys
import pymysql
import json
 
from incantation.Module.CSS.Grid import container, col, row, grid, section
from incantation.Module.CSS.Color import Indigo
from incantation.Module.CSS.Helpers import align, left_align, right_align, center_align
from incantation.Module.CSS.Media import video_container
from incantation.Module import abst
from incantation.Module import blockquote
from incantation.Module.CSS.Table import table
from incantation.Module.abst import default_conf, gen_helper, Seq
from incantation.template import Page
from incantation.Module.Component.Badges import collections, dropdown, badge, collapsible
from incantation.Module.Component.Icons import icon
from incantation.Module.Component.Button import FAB, raised
from incantation.Module.Component.Form import form, input_field
from incantation.Module.Component.Navbar import navbar
 
 
def myPage(list):
    main = container()
    title = blockquote("服务器对应部署的应用信息")
    users = table(["ip""环境","应用类型","应用名称","额外描述"],list)
 
 
    main.contains(Seq(
            col(Seq(title, users),grid(l=8, s=8, m=8)),
    ))
    page = Page(main)
    page.write(to='../ip.html')
 
 
 
if __name__ == '__main__':
    iplist_all = []
    conn = pymysql.connect("172.1.1.1""root""password""cmdb",charset='utf8')
    ##此处要指定charset为utf-8(一般数据库编码都是utf8或utf8mb4之类),否则读取出的中文会乱码
    cur = conn.cursor()
    #cur.execute("SELECT ip,env from hosts ORDER BY 2, 1")
    cur.execute("SELECT a.ip, a.env, b.item_type, b.item_name, b.description FROM HOSTS a LEFT JOIN applications b ON a.ip = b.ip ORDER BY 2,1")
    for row in cur.fetchall():
        iplist =[]
        iplist = list(row)
        # iplistj = json.dumps(iplist,ensure_ascii=False)
        # print(iplist)
        iplist_all.append(iplist)
    myPage(iplist_all)
    cur.close()


没有什么逻辑,模拟即可。


2.拷贝static,其实github已经实现,只要按照那个目录排列即可

1.使用python从数据库读数据后自动生成较为美观的html文件

点击ip,显示效果

1.使用python从数据库读数据后自动生成较为美观的html文件





本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/2047983,如需转载请自行联系原作者

上一篇:SDL2.0 学习笔记-1 windows下的第一个测试程序


下一篇:Ubuntu设置固定ip上网步骤