当前位置: 首页 > news >正文

汕头做网站优化哪家好网站策划书 范文

汕头做网站优化哪家好,网站策划书 范文,装修公司设计图,商务网站设计与制作shigen坚持更新文章的博客写手#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长#xff0c;分享认知#xff0c;留住感动。 个人IP#xff1a;shigen 逛博客的时候#xff0c;发现了一个很有意思的文章#xff1a;数据库表结构导… shigen坚持更新文章的博客写手擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长分享认知留住感动。 个人IPshigen 逛博客的时候发现了一个很有意思的文章数据库表结构导出工具。带着好奇我也去DIY了一个先看看效果 这个就是主要的程序界面可以选择生成md文档或者docx文档。具体的文档内容如下 md文档 docx文档 功能可以成功的实现现在我们来分析一下原理核心就是几条sql语句 use security;show tables;desc dict; show full columns from dict where field is_del;原理分析 查看全部的表 使用show tables就可以看到当前数据库下边的所有的数据表。 查看表结构 使用desc xxx即可查看表的详细结构包含字段的全部信息。 查看字段注释 字段的注释需要额外的sql了 当然shigen也看到过连表查询出字段的注释的可以进一步的改进。 总结 做一波小总结其实数据库文档生成就是用一些sql语句获得对应的表信息和字段信息使用文本拼接写入到文件里。 代码分享 那本次设计的代码也在这里欢迎大家学习交流 from tkinter import * from tkinter import messageboximport mysql.connector from docx import Document from tabulate import tabulate# 连接到MySQL数据库 def connect_to_database():host host_entry.get()user user_entry.get()password password_entry.get()database database_entry.get()try:conn mysql.connector.connect(hosthost,port3306,useruser,passwordpassword,databasedatabase)return connexcept mysql.connector.Error as err:messagebox.showerror(错误, f连接到MySQL数据库时出错{err})return None# 获取数据库中的表信息及字段注释 def get_table_info(conn):tables_info []if conn:cursor conn.cursor()cursor.execute(SHOW TABLES)tables cursor.fetchall()for table in tables:table_name table[0]cursor.execute(fDESCRIBE {table_name})table_structure cursor.fetchall()tables_info.append({table_name: table_name,structure: table_structure})cursor.close()return tables_info# 获取字段注释 def get_field_comment(table_name, field_name):cursor conn.cursor()cursor.execute(fSHOW FULL COLUMNS FROM {table_name} WHERE Field {field_name})column_info cursor.fetchone()comment column_info[8] # 注释信息在第9个元素中cursor.close()return comment# 生成Markdown格式的数据库文档 def generate_markdown_documentation(tables_info):documentation # 数据库文档\n\ndocumentation f数据库地址{host_entry.get()}\ndocumentation f用户名{user_entry.get()}\ndocumentation f数据库名称{database_entry.get()}\n\nfor table_info in tables_info:table_name table_info[table_name]structure table_info[structure]documentation f## {table_name}\n\nheaders [字段, 类型, 允许空值, 键, 默认值, 额外信息, 注释] # 添加注释列rows []for field_info in structure:rows.append(list(field_info) [get_field_comment(table_name, field_info[0])]) # 获取字段注释并添加到行中documentation tabulate(rows, headers, tablefmtpipe) \n\nreturn documentation# 生成docx格式的数据库文档 def generate_docx_documentation(tables_info):doc Document()doc.add_heading(数据库文档, 0)doc.add_paragraph(f数据库地址{host_entry.get()})doc.add_paragraph(f用户名{user_entry.get()})doc.add_paragraph(f数据库名称{database_entry.get()})for table_info in tables_info:table_name table_info[table_name]structure table_info[structure]doc.add_heading(table_name, level1)# 创建带边框的表格table doc.add_table(rows1, cols7)table.style Table Grid # 设置表格样式为带边框的样式table.autofit False # 禁止自动调整列宽hdr_cells table.rows[0].cellshdr_cells[0].text 字段hdr_cells[1].text 类型hdr_cells[2].text 允许空值hdr_cells[3].text 键hdr_cells[4].text 默认值hdr_cells[5].text 额外信息hdr_cells[6].text 注释 # 添加注释列for field_info in structure:row_cells table.add_row().cellsrow_cells[0].text field_info[0]row_cells[1].text field_info[1]row_cells[2].text field_info[2]row_cells[3].text field_info[3]row_cells[4].text field_info[4] if field_info[4] is not None else row_cells[5].text field_info[5]row_cells[6].text get_field_comment(table_name,field_info[0]) # 获取并显示字段注释return doc# 创建标签和输入框 def create_input_fields(root, fields):entries {}for row, (label_text, entry_text) in enumerate(fields):label Label(root, textlabel_text)label.grid(rowrow, column0, padx10, pady10, stickyw)entry Entry(root)entry.grid(rowrow, column1, padx10, pady10)entry.insert(0, entry_text)entries[label_text] entry# 添加文档类型选择器label Label(root, text文档类型:)label.grid(rowlen(fields), column0, padx10, pady10, stickyw)doc_type StringVar(root)doc_type.set(Markdown) # 默认选择 Markdowndoc_type_menu OptionMenu(root, doc_type, Markdown, Docx)doc_type_menu.grid(rowlen(fields), column1, padx10, pady10, stickyw)entries[文档类型:] doc_typereturn entries# 生成文档 def generate_document():global conn # 在函数内部使用全局变量 connconn connect_to_database()if conn:tables_info get_table_info(conn)if entries[文档类型:].get() Markdown: # 获取文档类型documentation generate_markdown_documentation(tables_info)with open(数据库文档.md, w, encodingutf-8) as file:file.write(documentation)messagebox.showinfo(成功, Markdown文档生成成功)elif entries[文档类型:].get() Docx:doc generate_docx_documentation(tables_info)doc.save(数据库文档.docx)messagebox.showinfo(成功, Docx文档生成成功)# 创建主窗口 root Tk() root.title(数据库文档生成器) root.geometry(400x300)# 标签和输入框的内容 fields [(主机地址:, ), (用户名:, ), (密码:, ), (数据库名称:, )]# 创建标签和输入框 entries create_input_fields(root, fields)# 获取输入框的内容 host_entry entries[主机地址:] user_entry entries[用户名:] password_entry entries[密码:] database_entry entries[数据库名称:]# 生成文档按钮 generate_button Button(root, text生成文档, commandgenerate_document) generate_button.grid(rowlen(fields) 1, columnspan2, padx10, pady10)root.mainloop() 与shigen一起每天不一样
http://www.hkea.cn/news/14465924/

相关文章:

  • wordpress采集站wordpress伪静态设置方法
  • 沛县网站制作泉州网站建设技术托管
  • 兰州网站建设推荐q479185700顶你推广平台排名
  • 注册个网站要多少钱办公网络建设项目商务要求
  • 齐家网和土巴兔装修哪家好优化大师安卓版
  • 开个个人网站网站建设使用工具
  • 网站大连顺义广州网站建设
  • h5网站开发培训哪里好上海最大的广告公司
  • 黄埔区网站建设数据展示网站模板
  • 淄川网站建设yx718怎样建免费个人网站
  • 全国网站建设有实力山西钢建公司简介
  • 怎样做淘宝网站简约商务ppt模板免费下载
  • 企业网站的设计与开发建设美食网站
  • 个人建网站运营.营销型网站推广
  • 做网站绘制蓝图的步骤开发企业网站要多少小时
  • 西安高校定制网站建设公司推荐it运维服务管理体系
  • 用ps做零食网站模板WordPress缩略图标签
  • 网站优化有哪些深圳歌剧院设计方案
  • 企业信息型网站有哪些人才招聘网最新招聘2022
  • jsp网站开发模式门户网站建设中存在的问题
  • 山东企业网站建设哪家好wordpress添加vip角色
  • 怎么修改网站后台权限企业网站不备案
  • 孝感做网站的公司wordpress禁用react
  • 网站建设职位呼和浩特做网站哪家公司好
  • 个人网站有什么缺点做学校网站素材图片大全
  • jsp购物网站开发 论文廊坊做网站的企业哪家好
  • 建设视频网站设计意义wordpress社区功能
  • 乐昌北京网站建设网站 免备案
  • 企业网站运维建站快车管理
  • 前端网站推荐美工培训班要多少学费