在工作中,会导出一份mysql的html来查看,用的是就是路过秋天大神的那个工具,所以想自己用那个样式直接在后端写一个页面做展示!

前端页面

from flask import Flask,request,render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' #这里用这个是不行的 注意修改为mysql 才可以正常使用
db = SQLAlchemy(app) @app.route("/listModel", methods=["GET"])
def listModel():
dbName = request.args.get("dbname","xx")
tableStr = """select table_name,table_comment from information_schema.tables where TABLE_TYPE='BASE TABLE' and table_schema='{}'""".format(
dbName)
resultList = db.engine.execute(tableStr)
_infoList = []
if resultList:
for index, result in enumerate(resultList):
tableName = result[0]
filedStr = """select ORDINAL_POSITION,column_name,COLUMN_COMMENT,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,numeric_precision,numeric_scale,COLUMN_KEY,COLUMN_DEFAULT,IS_NULLABLE from information_schema.columns where table_schema='{}' and table_name='{}'""".format(
dbName, tableName)
filedList = db.engine.execute(filedStr)
_infolist = []
if filedList:
for field in filedList:
if field[5]:
CHARACTER_MAXIMUM_LENGTH = field[5]
elif field[4]:
CHARACTER_MAXIMUM_LENGTH = field[4]
else:
CHARACTER_MAXIMUM_LENGTH = 0
if field[9] == "YES":
IS_NULLABLE = "Y"
else:
IS_NULLABLE = "N"
_infoDict = {
"ORDINAL_POSITION": field[0],
"column_name": field[1],
"COLUMN_COMMENT": field[2],
"DATA_TYPE": field[3],
"CHARACTER_MAXIMUM_LENGTH": CHARACTER_MAXIMUM_LENGTH,
"numeric_scale": field[6] if field[6] else 0,
"COLUMN_KEY": "Y" if field[7] else "",
"COLUMN_DEFAULT": field[8] if field[8] else "",
"IS_NULLABLE": IS_NULLABLE,
}
_infolist.append(_infoDict)
infoDict = {
"index": index + 1,
"tableName": tableName,
"table_comment": result[1],
"fields": _infolist
}
_infoList.append(infoDict)
return render_template("demos.html", rows=_infoList,dbName=dbName) if __name__ == '__main__':
app.run()

然后是 html 静态页面

### html

<html>
<head><title>数据库设计文档 -- {{ dbName }}</title>
<style type='text/css'>body, td {
font-family: verdana;
font-size: 12px;
line-height: 150%;
} table {
width: 100%;
background-color: #ccc;
margin: 5px 0;
} td {
background-color: #fff;
padding: 3px;
padding-left: 10px;
} thead td {
text-align: center;
font-weight: bold;
background-color: #eee;
} a:link, a:visited, a:active {
color: #015FB6;
text-decoration: none;
} a:hover {
color: #E33E06;
}</style>
</head>
<body style='text-align:center;background-image: url("{{ url_for("static",filename='18066.jpg') }}")'>
<div style='width:800px; margin:20px auto; text-align:left;'>
<a name='index'>
<H2 style='text-align:center; line-height:50px;'>数据库设计文档</H2>
<div><b>数据库名:{{ dbName }}</b></div>
<table cellspacing='' cellpadding=''>
<thead>
<tr>
<td style='width:40px; '>序号</td>
<td>表名</td>
<td>说明</td>
</tr>
</thead>
{% for x in rows %}
<tr>
<td style='text-align:center;'>{{ x.index }}</td>
<td><a href='#{{ x.tableName }}'>{{ x.tableName }}</a></td>
<td>{{ x.table_comment }}</td>
</tr>
{% endfor %}
</table>
</a>
{% for x in rows %}
<a name='{{ x.tableName }}'></a>
<div style='margin-top:30px;'><a href='#index'
style='float:right; margin-top:6px;'>返回目录</a><b>表名:{{ x.tableName }}</b>
</div>
<div>说明:{{ x.table_comment }}</div>
<div>数据列:</div>
<table cellspacing='' cellpadding=''>
<thead>
<tr>
<td style='width:40px; '>序号</td>
<td>名称</td>
<td>数据类型</td>
<td>长度</td>
<td>小数位</td>
<td>允许空值</td>
<td>主键</td>
<td>默认值</td>
<td>说明</td>
</tr>
</thead>
{% for z in x.fields %}
<tr>
<td style='text-align:center;'>{{ z.ORDINAL_POSITION }}</td>
<td>{{ z.column_name }}</td>
<td align='center'>{{ z.DATA_TYPE }}</td>
<td align='center'>{{ z.CHARACTER_MAXIMUM_LENGTH }}</td>
<td align='center'>{{ z.numeric_scale }}</td>
<td align='center'>{{ z.IS_NULLABLE }}</td>
<td align='center'>{{ z.COLUMN_KEY }}</td>
<td>{{ z.COLUMN_DEFAULT }}</td>
<td>{{ z.COLUMN_COMMENT }}</td>
</tr>
{% endfor %}
</table>
{% endfor %}
</div>
</body>
</html>

flask下直接展示mysql数据库 字段的更多相关文章

  1. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  2. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

  3. Flask项目中使用mysql数据库启动项目是发出警告

    Flask项目中使用mysql数据库启动项目是发出警告: Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA ...

  4. CentOS 6.3下Zabbix监控MySQL数据库参数

    系统环境:CentOS 6.3 x64  http://www.linuxidc.com/Linux/2012-12/76583.htm mysql:    mysql-5.6.10 http://w ...

  5. Flask与mysql数据库字段类型的区别以及基本用法

    Mysql里面的int在Flask中里面使用Integer Mysql里面的varcahar在Flask中里面使用String 与Mysql数据库需要导入模块 #导入第三方链接库sql点金术 from ...

  6. *CentOS下简单的MySQL数据库操作

    1.登录成功之后退出的话,直接输入quit或者exit即可.

  7. Elasticsearch学习(2) windows环境下Elasticsearch同步mysql数据库

    在上一章中,我们已经能够通过spring boot来使用Elasticsearch,但是由于我们习惯性的将数据写入mysql,所以为了解决这个问题,Elasticsearch为我们提供了一个插件log ...

  8. Linux下C++访问MySQL数据库

    由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令.想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据 ...

  9. CentOS6.5下简单的MySQL数据库操作

    1.登录成功之后退出的话,直接输入quit或者exit即可.

随机推荐

  1. 弹性配置为构建提速 - CODING & 腾讯云 CVM 最佳实践

    CODING 中提供了内置云主机用来执行持续集成(CI)中的构建计划,能够胜任大部分构建任务.但如果碰上了大型项目的构建,或者需要在本地服务器生成构建成果,单个计算资源就显得有点捉急了.针对这一部分需 ...

  2. Python实用笔记 (7)高级特性——切片

    列表L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 取前3个元素 >>> L[0:3] ['Michael', 'Sarah', ' ...

  3. 前端基础:HTTP 协议详解

    参考:https://kb.cnblogs.com/page/130970/#httpmeessagestructe HTTP协议是无状态的 http协议是无状态的,同一个客户端的这次请求和上次请求是 ...

  4. 玩转SpringBoot之捣鼓 Redis

    我们都知道,把首页数据放到Redis里,能够加快首页数据的访问速度.但是我们要如何准确又快速的将 Redis 整合到自己的 SpringBoot2.x 项目中呢?今天阿淼就带大家爬一爬其中的门门道道. ...

  5. Myeclipse启动WebLogic 总是报账号密码无效<Authentication denied: Boot identity not valid

    在MyEclipse下配置了Weblogic 11后,每次启动从报错: Critical> 看了下描述,是用户名及密码什么的问题,我想起来,配置Weblogic 的域的时候将密码改成了12345 ...

  6. hive 时间戳函数之unix_timestamp,from_unixtime

    一. 日期>>>>时间戳 1.unix_timestamp() 获取当前时间戳 例如:select unix_timestamp() -- 2.unix_timestamp(s ...

  7. Python-使用tkinter canvas绘制的电子时钟

    #!/usr/bin/env python # -*- coding: utf-8 -*- from tkinter import * import math import threading imp ...

  8. Linux CentOS 7 下dotnet core webpai + nginx 部署

    参考:https://www.jianshu.com/p/b1f573ca50c7 跟着做到,配置nginx访问dotnet core网站时,报错了. 错误如下所示—— 查看nginx的错误日志: c ...

  9. Data types 'int' and 'float'

    The type int means that the variables listed are integers; by contrast with float, which means float ...

  10. 为什么是link-visited-hover-active原理这样的特殊

    前言 通常我们在设置链接的一些伪类(link,visited,hover,active)样式时,要让不同的状态显示正确的样式,我们需要按一定的顺序设置这些伪类的样式.这里我就按css2规范中推荐的顺序 ...