flask下直接展示mysql数据库 字段
在工作中,会导出一份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数据库 字段的更多相关文章
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- Linux下定时备份MySQL数据库的Shell脚本
Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...
- Flask项目中使用mysql数据库启动项目是发出警告
Flask项目中使用mysql数据库启动项目是发出警告: Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA ...
- 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 ...
- Flask与mysql数据库字段类型的区别以及基本用法
Mysql里面的int在Flask中里面使用Integer Mysql里面的varcahar在Flask中里面使用String 与Mysql数据库需要导入模块 #导入第三方链接库sql点金术 from ...
- *CentOS下简单的MySQL数据库操作
1.登录成功之后退出的话,直接输入quit或者exit即可.
- Elasticsearch学习(2) windows环境下Elasticsearch同步mysql数据库
在上一章中,我们已经能够通过spring boot来使用Elasticsearch,但是由于我们习惯性的将数据写入mysql,所以为了解决这个问题,Elasticsearch为我们提供了一个插件log ...
- Linux下C++访问MySQL数据库
由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令.想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据 ...
- CentOS6.5下简单的MySQL数据库操作
1.登录成功之后退出的话,直接输入quit或者exit即可.
随机推荐
- 【MonogDB帮助类】
using System; using System.Collections.Generic; using System.Linq; using System.Web; using MongoDB; ...
- python解析json文件信息到csv中
json格式多种多样,本代码着重看函数部分 import json, csv, os import pandas as pd josns_root = 'jsons' csvs_root = 'csv ...
- ajax前后端交互原理(5)
5.ajax简介 5.1.什么是ajax Asynchronous JavaScript and XML ,异步的javascript和XML 5.2.使用ajax有什么用 数据交互,可以从服务器获取 ...
- 6.30集训模拟赛4(炸裂的一天qwq)
T1浇水: 题目描述 在一条长n米,宽m米米的长方形草地上放置着k个喷水装置.假设长方形草地的坐标范围为[ 0 , 0 ] ~ [ n , m ],那么第 i 个喷水装置的位置为(ai,m/2),也就 ...
- github Pull Request合入全流程介绍
图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...
- python中lambda匿名函数与函数之间的关系
- css文字不透明度怎么设置?
在css中有很多好看的样式都可以实现,css设置出来的样式让整个网页看起来也会非常美观,今天的这篇文章就给大家来介绍一下在css中怎么设置文字的透明度,让你的文字在网页中看起来是透明的. CSS设置透 ...
- html/css解决inline-block内联元素间隙的多种方法总汇
序 display有几种属性:inline是内联对象,比如<a/> . <span/>标签等,可以“堆在一起”显示,宽高由内容决定,不能设置:block是块对象,比如<d ...
- 弹性碰撞问题:Ants+Linear world
题目一:Ants 传送门 题目描述 输入 输出 样例 样例输入 样例输出 分析 一句话题意:有n只蚂蚁在木棍上爬行,每只蚂蚁的速度都是每秒1单位长度,现在给你所有蚂蚁初始的位置(蚂蚁运动方向未定),蚂 ...
- React学习路径快速进入AntDesignPro开发
好久没有写博客,有空再来记一下.最近在整些小东西,需要用到前端,最开始本着对nodejs的动不动几百兆插件的恐惧, 于是使用自己以前写的 OSS.Pjax 小框架(类似国外的Pjax,利用pushSt ...