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
-
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已经实现,只要按照那个目录排列即可
点击ip,显示效果
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/2047983,如需转载请自行联系原作者