python-mysql数据库表字段生成Markdown

397 小禅师 编程笔记

python-mysql数据库表字段生成Markdown


因工作需求,开发了一个车辆安全管理系统,因为新学习了python,所以尝试重新开发一个权当练手。

由于原系统数据库表太多查看不方便,于是想用python将所有表及字段生成Markdown格式。

代码如下:

import mysql.connector
import pandas as pd
# 连接MySQL数据库
mydb = mysql.connector.connect(
  host="数据库主机",
  user="root",
  password="",
  database="数据库名"
)
# 读取表信息
tables = pd.read_sql("SHOW TABLES", mydb)

# 遍历表,读取列信息并生成Markdown文档
for table in tables["Tables_in_{}".format("dogll")]:
    columns = pd.read_sql("SHOW COLUMNS FROM {}".format(table), mydb)
    print("## Table: {}".format(table))
    print("| Column Name | Data Type | Is Nullable |")
    print("| --- | --- | --- |")
    for index, row in columns.iterrows():
        print("| {} | {} | {} |".format(row["Field"], row["Type"], "YES" if row["Null"] == "YES" else "NO"))
# 将Markdown文档保存到文件中
with open("table_info.md", "w") as f:
    for table in tables["Tables_in_{}".format("dogll")]:
        columns = pd.read_sql("SHOW COLUMNS FROM {}".format(table), mydb)
        f.write("## Table: {}\n".format(table))
        f.write("| Column Name | Data Type | Is Nullable |\n")
        f.write("| --- | --- | --- |\n")
        for index, row in columns.iterrows():
            f.write("| {} | {} | {} |\n".format(row["Field"], row["Type"], "YES" if row["Null"] == "YES" else "NO"))

结果:

python-mysql数据库表字段生成Markdown

python-mysql数据库表字段生成Markdown


声明
本人日常收集记录、分享的内容,只供参考之用。
如对文章中提到您的产品感到不满,请与我联系。
联系Q Q 1318686166   Email: alex@dogll.com
THE END
相关文章
评论列表
  • 老头爱学习
    老头爱学习 Jun 21日, 2023 @ 02:39 am 有一个问题,《父与子编程之旅》那本书,第11章嵌套循环中,练习题中【动手试一试】第2题: 【Countdown timer: How many seconds? 4 4 * * * * 3 * * * 2 * * 1 * BLAST OFF!】 答案中: import time seconds = int(input("Countdown timer: How many seconds? ")) for i in range (seconds, 0, -1): print(i,end=" ") for seconds in range(i): print("*",end=" ") print() time.sleep(1) print("BLAST OFF!") 我的问题是:内循环:for seconds in range(i)这句不能明白,我尝试更换变量 写成:for j in range(seconds)但输出后打印不正确。我不能明白为什么。内循环和外循环,必须有相同变量吗?书里的其他例题我都明白,也并没有限制过变量。请问您能否帮忙讲解? 回复
  • 咕咕
    咕咕 May 19日, 2023 @ 06:32 pm 刚才尝试了下发现,涉及到有0,比如:range(0)和[0],输出print(“*”)结果完全不一样。又去终端里python2.7看了下, >>> range(0) [] >>> [0] [0] 突然明白了。。。。 range(起始,截止,步长),如果我不标准的只写起始数:比如0或负数,就会返回空值[]None,对吗? 好有趣~~~~~ 回复
  • Migrate
    Migrate May 12日, 2023 @ 10:38 am 不是经常有人说“基础不牢,地动山摇吗”?作为转行的人,不知道到底该不该死磕底层比如操作系统这些知识 回复
  • 小火柴
    小火柴 May 15日, 2023 @ 01:00 pm 已经看过《趣学Python——教孩子学编程》Python for Kids, Jason R Briggs ,后续想要深入学习Python推荐什么书呀?深入到使用TensorFlow框架 回复
发布评论
验证码
提交