最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用python生成mysql數(shù)據(jù)庫結(jié)構(gòu)文檔

 更新時間:2022年01月20日 09:24:15   作者:henghenghahei_3  
大家好,本篇文章主要講的是用python生成mysql數(shù)據(jù)庫結(jié)構(gòu)文檔,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下

最近因?yàn)轫椖吭蛐枰帉憯?shù)據(jù)庫設(shè)計文檔,但是由于數(shù)據(jù)表太多,手動編寫耗費(fèi)的時間太久,所以搞了一個簡單的腳本快速生成數(shù)據(jù)庫結(jié)構(gòu),保存到word文檔中。

安裝pymysql和document

pip install pymysql
pip install document

腳本

# -*- coding: utf-8 -*-
import pymysql
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn

db = pymysql.connect(host='127.0.0.1', #數(shù)據(jù)庫服務(wù)器IP
                         port=3306,
                         user='root',
                         passwd='123456',
                         db='test_db') #數(shù)據(jù)庫名稱)
#根據(jù)表名查詢對應(yīng)的字段相關(guān)信息
def query(tableName):
    #打開數(shù)據(jù)庫連接
    cur = db.cursor()
    sql = "select b.COLUMN_NAME,b.COLUMN_TYPE,b.COLUMN_COMMENT from (select * from information_schema.`TABLES`  where TABLE_SCHEMA='test_db') a right join(select * from information_schema.`COLUMNS` where TABLE_SCHEMA='test_db_test') b on a.TABLE_NAME = b.TABLE_NAME where a.TABLE_NAME='" + tableName+"'"
    cur.execute(sql)
    data = cur.fetchall()
    cur.close
    return data
#查詢當(dāng)前庫下面所有的表名,表名:tableName;表名+注釋(用于填充至word文檔):concat(TABLE_NAME,'(',TABLE_COMMENT,')')
def queryTableName():
    cur = db.cursor()
    sql = "select TABLE_NAME,concat(TABLE_NAME,'(',TABLE_COMMENT,')') from information_schema.`TABLES`  where TABLE_SCHEMA='test_db_test'"
    cur.execute(sql)
    data = cur.fetchall()
    return data
#將每個表生成word結(jié)構(gòu),輸出到word文檔
def generateWord(singleTableData,document,tableName):
    p=document.add_paragraph()
    p.paragraph_format.line_spacing=1.5 #設(shè)置該段落 行間距為 1.5倍
    p.paragraph_format.space_after=Pt(0) #設(shè)置段落 段后 0 磅
    #document.add_paragraph(tableName,style='ListBullet')
    r=p.add_run('\n'+tableName)
    r.font.name=u'宋體'
    r.font.size=Pt(12)
    table = document.add_table(rows=len(singleTableData)+1, cols=3,style='Table Grid')
    table.style.font.size=Pt(11)
    table.style.font.name=u'Calibri'
    #設(shè)置表頭樣式
    #這里只生成了三個表頭,可通過實(shí)際需求進(jìn)行修改
    for i in ((0,'NAME'),(1,'TYPE'),(2,'COMMENT')):
        run = table.cell(0,i[0]).paragraphs[0].add_run(i[1])
        run.font.name = 'Calibri'
        run.font.size = Pt(11)
        r = run._element
        r.rPr.rFonts.set(qn('w:eastAsia'), '宋體')
    
    for i in range(len(singleTableData)):
        #設(shè)置表格內(nèi)數(shù)據(jù)的樣式
        for j in range(len(singleTableData[i])):
            run = table.cell(i+1,j).paragraphs[0].add_run(singleTableData[i][j])
            run.font.name = 'Calibri'
            run.font.size = Pt(11)
            r = run._element
            r.rPr.rFonts.set(qn('w:eastAsia'), '宋體')
        #table.cell(i+1, 0).text=singleTableData[i][1]
        #table.cell(i+1, 1).text=singleTableData[i][2]
        #table.cell(i+1, 2).text=singleTableData[i][3]
    

if __name__ == '__main__':
    #定義一個document
    document = Document()
    #設(shè)置字體默認(rèn)樣式
    document.styles['Normal'].font.name = u'宋體'
    document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')
    #獲取當(dāng)前庫下所有的表名信息和表注釋信息
    tableList = queryTableName()
    #循環(huán)查詢數(shù)據(jù)庫,獲取表字段詳細(xì)信息,并調(diào)用generateWord,生成word數(shù)據(jù)
    #由于時間匆忙,我這邊選擇的是直接查詢數(shù)據(jù)庫,執(zhí)行了100多次查詢,可以進(jìn)行優(yōu)化,查詢出所有的表結(jié)構(gòu),在代碼里面將每個表結(jié)構(gòu)進(jìn)行拆分
    for singleTableName in tableList:
        data = query(singleTableName[0])
        generateWord(data,document,singleTableName[1])
    #保存至文檔
    document.save('數(shù)據(jù)庫設(shè)計.docx')

生成的word文檔預(yù)覽

在這里插入圖片描述

到此這篇關(guān)于用python生成mysql數(shù)據(jù)庫結(jié)構(gòu)文檔的文章就介紹到這了,更多相關(guān)python生成mysql結(jié)構(gòu)文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python字符串判斷密碼強(qiáng)弱

    python字符串判斷密碼強(qiáng)弱

    這篇文章主要為大家詳細(xì)介紹了python字符串判斷密碼強(qiáng)弱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 分享給Python新手們的幾道簡單練習(xí)題

    分享給Python新手們的幾道簡單練習(xí)題

    這篇文章主要給學(xué)習(xí)Python的新手們分享了幾道簡單練習(xí)題,文中給出了詳細(xì)的示例代碼供大家學(xué)習(xí)參考,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • python pandas 時間日期的處理實(shí)現(xiàn)

    python pandas 時間日期的處理實(shí)現(xiàn)

    這篇文章主要介紹了python pandas 時間日期的處理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python中django框架通過正則搜索頁面上email地址的方法

    python中django框架通過正則搜索頁面上email地址的方法

    這篇文章主要介紹了python中django框架通過正則搜索頁面上email地址的方法,涉及django框架及正則表達(dá)式的使用技巧,需要的朋友可以參考下
    2015-03-03
  • Python mutiprocessing多線程池pool操作示例

    Python mutiprocessing多線程池pool操作示例

    這篇文章主要介紹了Python mutiprocessing多線程池pool操作,結(jié)合實(shí)例形式分析了Python多線程模塊multiprocessing進(jìn)程池相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • 使用Python 操作 xmind 繪制思維導(dǎo)圖的詳細(xì)方法

    使用Python 操作 xmind 繪制思維導(dǎo)圖的詳細(xì)方法

    在平時的工作中當(dāng)我們要總結(jié)一些知識的時候就需要一款工具來畫畫流程圖,這里推薦 XMind 軟件,用 Xmind 繪制的思維導(dǎo)圖看起來思路清晰,那么今天的文章介紹關(guān)于思維導(dǎo)圖的相關(guān)知識以及用 Python 如何操作 Xmind 繪制思維導(dǎo)圖
    2021-10-10
  • Python處理日期方法詳細(xì)大全(30種方法)

    Python處理日期方法詳細(xì)大全(30種方法)

    這篇文章主要給大家介紹了關(guān)于Python處理日期方法詳細(xì)大全,文中共介紹了30種方法,Python程序能用很多方式處理日期和時間,轉(zhuǎn)換日期格式是一個常見的功能,Python提供了一個time和calendar模塊可以用于格式化日期和時間,需要的朋友可以參考下
    2023-12-12
  • 詳解python3百度指數(shù)抓取實(shí)例

    詳解python3百度指數(shù)抓取實(shí)例

    本篇文章主要介紹了python3百度指數(shù)抓取,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
    2016-12-12
  • Python實(shí)現(xiàn)抓取騰訊視頻所有電影的示例代碼

    Python實(shí)現(xiàn)抓取騰訊視頻所有電影的示例代碼

    這篇文章主要為大家介紹了如何使用python實(shí)現(xiàn)抓取騰訊視頻所有電影,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • python中的pyc文件是什么

    python中的pyc文件是什么

    這篇文章主要介紹了python中的pyc文件是什么,pyc文件是Python編譯過的字節(jié)碼文件,這個字節(jié)碼是一種低級的、與平臺無關(guān)的代碼,還不知道的朋友來了解一下吧
    2023-04-04

最新評論

南郑县| 海原县| 哈尔滨市| 泸溪县| 开远市| 杭锦后旗| 沂南县| 双鸭山市| 高密市| 怀集县| 泊头市| 英德市| 双桥区| 韶关市| 贺兰县| 云梦县| 长武县| 怀仁县| 师宗县| 苗栗县| 休宁县| 隆子县| 宁晋县| 安吉县| 赤水市| 临武县| 郁南县| 电白县| 兴国县| 土默特左旗| 嘉黎县| 太原市| 定边县| 灵寿县| 黔江区| 驻马店市| 庐江县| 东海县| 宜州市| 贺兰县| 荣成市|