91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用python生成mysql數據庫結構文檔

發布時間:2022-01-20 11:02:54 來源:億速云 閱讀:286 作者:小新 欄目:開發技術

這篇文章主要介紹了怎么用python生成mysql數據庫結構文檔,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

因為項目原因需要編寫數據庫設計文檔,但是由于數據表太多,手動編寫耗費的時間太久,所以搞了一個簡單的腳本快速生成數據庫結構,保存到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', #數據庫服務器IP
                         port=3306,
                         user='root',
                         passwd='123456',
                         db='test_db') #數據庫名稱)
#根據表名查詢對應的字段相關信息
def query(tableName):
    #打開數據庫連接
    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
#查詢當前庫下面所有的表名,表名: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結構,輸出到word文檔
def generateWord(singleTableData,document,tableName):
    p=document.add_paragraph()
    p.paragraph_format.line_spacing=1.5 #設置該段落 行間距為 1.5倍
    p.paragraph_format.space_after=Pt(0) #設置段落 段后 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'
    #設置表頭樣式
    #這里只生成了三個表頭,可通過實際需求進行修改
    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)):
        #設置表格內數據的樣式
        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()
    #設置字體默認樣式
    document.styles['Normal'].font.name = u'宋體'
    document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')
    #獲取當前庫下所有的表名信息和表注釋信息
    tableList = queryTableName()
    #循環查詢數據庫,獲取表字段詳細信息,并調用generateWord,生成word數據
    #由于時間匆忙,我這邊選擇的是直接查詢數據庫,執行了100多次查詢,可以進行優化,查詢出所有的表結構,在代碼里面將每個表結構進行拆分
    for singleTableName in tableList:
        data = query(singleTableName[0])
        generateWord(data,document,singleTableName[1])
    #保存至文檔
    document.save('數據庫設計.docx')

生成的word文檔預覽

怎么用python生成mysql數據庫結構文檔

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么用python生成mysql數據庫結構文檔”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐都县| 鄂温| 台安县| 临潭县| 五家渠市| 彭阳县| 兴义市| 新宁县| 新沂市| 昭苏县| 崇阳县| 康平县| 洛阳市| 高陵县| 黎城县| 平湖市| 昭觉县| 安西县| 沙田区| 枣强县| 洪泽县| 望奎县| 如东县| 双江| 论坛| 凤冈县| 靖西县| 广州市| 枞阳县| 台湾省| 京山县| 锡林郭勒盟| 朝阳区| 仁怀市| 上栗县| 西乌| 漳州市| 景宁| 周宁县| 周至县| 凌海市|