Python闪电开发:50行代码制作在线数据库查询系统!
人生苦短,早用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行代码制作在线数据库查询系统!相关推荐
- python爬虫入门——13行代码制作英语翻译器教程,小白入门一点通
有些同学一想到爬虫,就觉得很厉害,然后也认为是一个很难学,确实,会爬虫的确是个狠人,爬虫这个东西可以抓取很多东西,但是也并不是那么的难学,入门其实也很简单,爬虫都是一些套路步骤,那么接下来让我们用13 ...
- 电子木鱼这么火?Python仅需50行代码实现(附代码,及素材)
背景 效果展示 代码 素材 背景 最近在刷某音的时,发现一款电子木鱼非常的火爆.这款软件可以说是积功德的神器,敲一下功德+1,敲一下+1.成功的吸引了我的注意,便有了这个迷你项目.成功的复刻了其加功德 ...
- 2022年第一篇C语言50行代码制作爱心电子相册
文章目录 介绍 效果展示 源代码 素材 总结 介绍 去年看到过,今天突然想到,记录下来.给初学者留个好印象. 关于开发工具------浪漫烟花文章有介绍 效果展示 动态图 源代码 #include&l ...
- python爬虫实战:利用scrapy,短短50行代码下载整站短视频
近日,有朋友向我求助一件小事儿,他在一个短视频app上看到一个好玩儿的段子,想下载下来,可死活找不到下载的方法.这忙我得帮,少不得就抓包分析了一下这个app,找到了视频的下载链接,帮他解决了这个小问题 ...
- python跑酷游戏源码_HTML5游戏实战(1):50行代码实现正面跑酷游戏
前段时间看到一个"熊来了"的HTML5跑酷游戏,它是一个典型的正面2D跑酷游戏,这里借用它来介绍一下用Gamebuilder+CanTK开发正面跑酷游戏的基本方法. CanTK(C ...
- 50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误.微信公众号引流工具.html,python学习小项目.艺术签名设计微信小程序,前端学习小项目有趣的项目
50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误 先看效果 这个小程序实现艺术签名设计的功能 对接到公众号之后,相当于给你的公众号添加了一个功能,别人关注公众号后,可以 ...
- 【Python】50行代码带你背单词,四六级冲冲冲
前言 很快就要到六月份的英语四级考试了,你们都准备好了吗?听说很多小伙伴还在背单词,在我看来,背单 词真的是很难坚持的一件事.今天,就用Python给大家分享一个背单词神奇,一边学还能一边玩,这可 把 ...
- python实现50行代码_50行代码实现python计算器主要功能
实现功能:计算带有括号和四则运算的式子 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 基本思路:使用正则表达式提取出每一层小括 ...
- python pyquery不规则数据的抓取_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网 前言 上篇文章 PyQuery (一) 回顾.今天来介绍具体 PyQuery 的使用方法. 穷游网目标与分析 开始之前,按照之前的套路一步 ...
最新文章
- IDE to AHCI/RAID 蓝屏补丁
- 实际开发什么场景用到线程池_线程池的具体业务场景分析
- Asp中一些FSO方面的函数
- VTK:图片之ImageWarp
- 无法访问虚拟机tomcat网页
- linux bjobs
- 增值电信服务费是什么意思_增值电信业务IDC许可证要年检吗,流程是什么
- 全国计算机四六级报名时间2015,2015年英语四六级口语考试报名时间:10月25日起...
- 不要过打折的生活,当你发现这些你有了,说明你开始成熟了
- python安装rarfile模块_python模块整理7-zipfile模块
- 【大数据部落】(数据挖掘)如何用大数据做用户异常行为分析
- gogs 把用户加入项目
- 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!
- Excel如何统计多种分隔符号的单元格姓名个数
- 主要搜索引擎(Google和百度、雅虎)的站内搜索代码
- 基于Python的“书怡”在线书店系统的设计与实现毕业设计源码082332
- 给电脑C盘系统盘瘦身的四种方法
- python笔记2—day2
- 何小黑的2019年秋招面经~
- Android使用Fragment打造万能页面切换框架