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,如需转载请自行联系原作者