引言
如果你表结构已经创建好了,然后你要写文档,需要数据库的表结构,这个小工具一定很适合你。
如果想导出excel,可以看之前写的文档
代码
from sqlalchemy import create_engine
import pandas
import docx
conn = create_engine('mysql+pymysql://数据库用户名:数据库密码@127.0.0.1/数据库名')
def sqlQuery(sql):
return pandas.read_sql_query(sql, conn)
query = sqlQuery("""SELECT TABLE_NAME
FROM information_schema.`COLUMNS`
WHERE TABLE_SCHEMA = '数据库名'
group by TABLE_NAME
""")
doc = docx.Document()
for i in query.to_dict(orient='records'):
cols = sqlQuery(f"""SELECT COLUMN_NAME as "字段名"
, COLUMN_COMMENT as "字段解释"
,if(IS_NULLABLE='NO',"是","否") as 是否必填
FROM information_schema.`COLUMNS`
WHERE TABLE_SCHEMA = '数据库名' and
TABLE_NAME = '{i["TABLE_NAME"]}'
""")
doc.add_paragraph("表" + i["TABLE_NAME"])
table = doc.add_table(rows=1, cols=3, style='Table Grid') # 创建带边框的表格
hdr_cells = table.rows[0].cells # 获取第0行所有所有单元格
hdr_cells[0].text = '字段名'
hdr_cells[1].text = '字段解释'
hdr_cells[2].text = '是否必填'
for i in cols.to_dict(orient='records'):
cells = table.add_row().cells
cells[0].text = i["字段名"]
cells[1].text = i["字段解释"]
cells[2].text = i["是否必填"]
doc.save('d:/1/tmp.docx')
修改成你需要的
- conn 连接字符串改成你mysql的
- 所有的字符串
数据库名替换成你的数据库名 - 最后一行的路径改成你想保存的路径
导出效果





评论 0
还没有评论,来说点什么吧。