人生苦短,早用Python!

相信大家都用过Navicat,Sqlyog,癞蛤蟆之类的数据库可视化工具。那么,自己能不能做一个类似的数据库可视化的东西呢,毕竟原生的命令行不是很美观,Python50行代码搞定!

先上效果图:

文章目录

  • 0.导入相关依赖库
  • 1.编写数据库配置信息
  • 2.创建Dash对象
  • 3.设置页面布局
  • 4.编写回调函数
  • 5.启动
  • 6.效果
  • 7.想法

0.导入相关依赖库

缺少相关模块,自行下载即可,下载命令: pip install xxx

import dash
import dash_html_components as html
import dash_bootstrap_components as dbc
import dash_core_components as dcc
from dash.dependencies import Input, Output, State
import pandas as pd
from sqlalchemy import create_engine

1.编写数据库配置信息

以关系型数据库Postgresql数据库为例,当然也可以使用其他数据库!

postgres_url = 'postgresql://postgres:root@localhost:5432/db1'
engine = create_engine(postgres_url)

2.创建Dash对象

app = dash.Dash(__name__)

3.设置页面布局

页面布局使用了bootstrap的网格布局,两行,第一行:两个按钮,一个下拉框,第二行:留白部分,显示查询的表信息!

app.layout = html.Div(dbc.Container([dbc.Row([dbc.Col(dbc.Button('刷新数据库信息', id='refresh', style={'width': '100%'}),width=2),dbc.Col(dcc.Dropdown(id='db_tables', placeholder='请选择一张表', style={'width': '100%'}),width=4),dbc.Col(dbc.Button('查询', id='query', style={'width': '100%'}),width=1)]),html.Br(),dbc.Row([dbc.Col(id='query_result')])],style={'margin-top': '50px'}))

4.编写回调函数

两个交互的回调函数,第一个:点击按钮,把表名传递给下拉框;第二个:把下拉框中选择的值,传递给要查询的SQL语句,点击按钮查询!

@app.callback(Output('db_tables', 'options'),Input('refresh', 'n_clicks'),prevent_initial_call=True)
def query_data(n_clicks):tables = pd.read_sql_query("select tablename from pg_tables where schemaname='public'",con=engine)return [{'label': name, 'value': name} for name in tables['tablename']]@app.callback(Output('query_result', 'children'),Input('query', 'n_clicks'),State('db_tables', 'value'),prevent_initial_call=True)
def query_table(n_clicks, value):if value:resultDF = pd.read_sql_query(f'select * from {value}', con=engine)return html.Div(dbc.Table.from_dataframe(resultDF, striped=True),style={'height': '600px','overflow': 'auto'})else:return dash.no_update

5.启动

if __name__ == '__main__':app.run_server(debug=True)

6.效果

7.想法

如果想扩展,可以前面加一个数据的下拉框,就可以查询到不同库下面的表;如果想更换数据库,比如换成MySQL,只需要把第一步的数据库信息做下变更,还有查询库下所有标的sql需要变更,“show tables”!


觉得还行的,可以点赞收藏一波,Byebye!

Python闪电开发:50行代码制作在线数据库查询系统!相关推荐

  1. python爬虫入门——13行代码制作英语翻译器教程,小白入门一点通

    有些同学一想到爬虫,就觉得很厉害,然后也认为是一个很难学,确实,会爬虫的确是个狠人,爬虫这个东西可以抓取很多东西,但是也并不是那么的难学,入门其实也很简单,爬虫都是一些套路步骤,那么接下来让我们用13 ...

  2. 电子木鱼这么火?Python仅需50行代码实现(附代码,及素材)

    背景 效果展示 代码 素材 背景 最近在刷某音的时,发现一款电子木鱼非常的火爆.这款软件可以说是积功德的神器,敲一下功德+1,敲一下+1.成功的吸引了我的注意,便有了这个迷你项目.成功的复刻了其加功德 ...

  3. 2022年第一篇C语言50行代码制作爱心电子相册

    文章目录 介绍 效果展示 源代码 素材 总结 介绍 去年看到过,今天突然想到,记录下来.给初学者留个好印象. 关于开发工具------浪漫烟花文章有介绍 效果展示 动态图 源代码 #include&l ...

  4. python爬虫实战:利用scrapy,短短50行代码下载整站短视频

    近日,有朋友向我求助一件小事儿,他在一个短视频app上看到一个好玩儿的段子,想下载下来,可死活找不到下载的方法.这忙我得帮,少不得就抓包分析了一下这个app,找到了视频的下载链接,帮他解决了这个小问题 ...

  5. python跑酷游戏源码_HTML5游戏实战(1):50行代码实现正面跑酷游戏

    前段时间看到一个"熊来了"的HTML5跑酷游戏,它是一个典型的正面2D跑酷游戏,这里借用它来介绍一下用Gamebuilder+CanTK开发正面跑酷游戏的基本方法. CanTK(C ...

  6. 50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误.微信公众号引流工具.html,python学习小项目.艺术签名设计微信小程序,前端学习小项目有趣的项目

    50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误 先看效果 这个小程序实现艺术签名设计的功能 对接到公众号之后,相当于给你的公众号添加了一个功能,别人关注公众号后,可以 ...

  7. 【Python】50行代码带你背单词,四六级冲冲冲

    前言 很快就要到六月份的英语四级考试了,你们都准备好了吗?听说很多小伙伴还在背单词,在我看来,背单 词真的是很难坚持的一件事.今天,就用Python给大家分享一个背单词神奇,一边学还能一边玩,这可 把 ...

  8. python实现50行代码_50行代码实现python计算器主要功能

    实现功能:计算带有括号和四则运算的式子 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 基本思路:使用正则表达式提取出每一层小括 ...

  9. python pyquery不规则数据的抓取_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...

    爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网 前言 上篇文章 PyQuery (一) 回顾.今天来介绍具体 PyQuery 的使用方法. 穷游网目标与分析 开始之前,按照之前的套路一步 ...

最新文章

  1. IDE to AHCI/RAID 蓝屏补丁
  2. 实际开发什么场景用到线程池_线程池的具体业务场景分析
  3. Asp中一些FSO方面的函数
  4. VTK:图片之ImageWarp
  5. 无法访问虚拟机tomcat网页
  6. linux bjobs
  7. 增值电信服务费是什么意思_增值电信业务IDC许可证要年检吗,流程是什么
  8. 全国计算机四六级报名时间2015,2015年英语四六级口语考试报名时间:10月25日起...
  9. 不要过打折的生活,当你发现这些你有了,说明你开始成熟了
  10. python安装rarfile模块_python模块整理7-zipfile模块
  11. 【大数据部落】(数据挖掘)如何用大数据做用户异常行为分析
  12. gogs 把用户加入项目
  13. 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!
  14. Excel如何统计多种分隔符号的单元格姓名个数
  15. 主要搜索引擎(Google和百度、雅虎)的站内搜索代码
  16. 基于Python的“书怡”在线书店系统的设计与实现毕业设计源码082332
  17. 给电脑C盘系统盘瘦身的四种方法
  18. python笔记2—day2
  19. 何小黑的2019年秋招面经~
  20. Android使用Fragment打造万能页面切换框架

热门文章

  1. Java知识体系(2021最新版)
  2. python+Linux centos7搭建服务器
  3. 微信第三方平台【四】使用授权码获取授权信息 authorization_info
  4. 从《遇见大咖》看董明珠有感
  5. 记一次交通事故代位赔偿
  6. Ubuntu操作-09 快捷键
  7. 初识 ThreeJS (ThreeJS 相关环境搭建)
  8. 【upc】2020年秋季组队训练赛第十四场 Get Strong | 折半搜索、二分
  9. c语言双截龙_龙吼双截龙Rage of the Dragons基本操作
  10. php在网页上运行,在浏览器中使用PHP脚本运行作曲家