一个python+flask和SQLite的数字查找以及Dataload命令生成的小工具
在日常工作中,我经常需要从excel中通过vlookup函数查询一些工单号,然后生成Dataload命令来进行工单结束的批量操作。
这些操作通常需要打开ecxcel,然后挨个输入户号。如果每次都要打开excel,或者手动拼接字符串,就会比较麻烦和耗时。
为了解决这个问题,我用Python和Flask框架,以及SQLite数据库来实现了一个小工具,它可以让用户在网页上输入一些数字,并根据用户的输入是工单号还是用户号,自动判断是否需要进行数据库查询,如果是工单号,就在数据库中查找相应的工单号,如输入的时候工单号,则直接进行拼接dataload命令。最终,将成成的dataload命令直接显示在网页上。这样就可以方便地将数据导入或导出到dataload中。
功能介绍
这个小工具主要有两个功能:查找数据和生成Dataload命令。
查找数据
以下是对代码的详细解释。
首先,代码导入了必要的库:Flask和sqlite3。然后,创建了一个Flask应用实例,并定义了两个路由。
from flask import Flask, render_template, request
import sqlite3
app = Flask(__name__)
路由 “/” 返回主页 index.html。在index.html中,用户可以输入需要查询的数字,将其以换行符分隔,并点击"查询"按钮。
@app.route('/')
def index():return render_template('index.html')
路由 “/find_numbers” 接收POST请求,获取用户输入的数字并将其以换行符分割为单个数字,遍历每个数字并查询数据库。
如果数字长度为11,则从数据库中查询与该数字匹配的work_id,并使用查询结果生成dataload命令的三个不同的命令行:huifu、zhongzhi和shenpi。
@app.route('/find_numbers', methods=['POST'])
def find_numbers():# 获取用户输入的user_id# 获取表单中的输入数据(字符串类型)input_str = request.form['user_id']# 将字符串以换行符分割成一个个数字input_numbers = input_str.split('\n')# 遍历所有数字并查询数据库conn = sqlite3.connect('work_data2.db')c = conn.cursor()huifu = ['*ML(1090,176) *SL(1) *ML(1082,360) *SL(6) *ML(136,244) *SL(1) *ML(672,272) *UP *UP \{ENTER} *SL(2)']zhongzhi = ['*ML(60,214) *SL(0.2) *ML(58,246) *SL(0.2) *ML(498,271) *SL(0.2) *ML(420,415) *SL(0.2)']shenpi = ['*ML(1090,176) *SL(1) *ML(1082,360) *SL(6) *ML(365,243) *SL(1) *ML(668,272) *UP *UP \{ENTER} *SL(2)']
如果数字长度为17,则直接使用输入的数字生成相应的dataload命令。
elif len(num) == 17:huifu.append('*ML(139,272) \^A \{BACKSPACE} ' + num.strip() + ' *ML(715,274) *SL(5) *ML(241,389) *ML(241,389) *SL(5) *ML(838,508) 结束两件套工单 *ML(1105,653) *SL(2) *ML(1135,541) *SL(5)')zhongzhi.append('*ML(79,210) *ML(184,271) \^A \{BACKSPACE} ' + num.strip() + ' *ML(536,273) *SL(8) *ML(513,391) *ML(34,333) *SL(1) *ML(1135,543) *SL(1) *ML(355,336) *SL(4) *ML(900,566) 清理两件套工单 *ML(1077,631) *SL(3) *ML(1134,541) *SL(1) *ML(1131,626) *SL(4)')shenpi.append('*ML(139,272) \^A \{BACKSPACE} ' + num.strip() + ' *ML(715,274) *SL(5) *ML(178,419) *ML(178,419) *SL(5) *ML(954,549) *ML(785,574) *ML(781,583) 结束两件套工单 *ML(1180,646) *SL(2) *ML(1135,541) *SL(4)')
如果数据库中找不到与输入数字匹配的work_id,则将数字添加到cant_find列表中。
cant_find+=num
最后,将cant_find列表中的数字转换为字符串并将其与dataload命令版本一起返回给用户。
return render_template('result.html', huifu=huifu,zhongzhi=zhongzhi,shenpi=shenpi,cant_find=cant_find)
需要注意的是,代码中使用的数据库文件名为 “work_data2.db”。在运行代码之前,应确保该数据库文件存在并包含正确的数据。此外,代码中的dataload命令版本可能需要根据具体的需求进行修改
以下是完整代码:
# 导入必要的库
from flask import Flask, render_template, request
import sqlite3# 创建Flask应用实例
app = Flask(__name__)# 定义主页路由,返回index.html页面
@app.route('/')
def index():return render_template('index.html')# 定义查询路由,接收用户输入的user_id并返回对应数据
@app.route('/find_numbers', methods=['POST'])
def find_numbers():# 获取用户输入的user_id# 获取表单中的输入数据(字符串类型)input_str = request.form['user_id']# 将字符串以换行符分割成一个个数字input_numbers = input_str.split('\n')# 遍历所有数字并查询数据库conn = sqlite3.connect('work_data2.db')c = conn.cursor()huifu = ['*ML(1090,176) *SL(1) *ML(1082,360) *SL(6) *ML(136,244) *SL(1) *ML(672,272) *UP *UP \{ENTER} *SL(2)']zhongzhi = ['*ML(60,214) *SL(0.2) *ML(58,246) *SL(0.2) *ML(498,271) *SL(0.2) *ML(420,415) *SL(0.2)']shenpi = ['*ML(1090,176) *SL(1) *ML(1082,360) *SL(6) *ML(365,243) *SL(1) *ML(668,272) *UP *UP \{ENTER} *SL(2)']cant_find = []for num in input_numbers:if len(num) == 11:c.execute("SELECT work_id FROM work WHERE user_id = ?", (num,))result = c.fetchone()if result is not None:huifu.append('*ML(139,272) \^A \{BACKSPACE} ' + str(result[0]) + ' *ML(715,274) *SL(5) *ML(241,389) *ML(241,389) *SL(5) *ML(838,508) 结束两件套工单 *ML(1105,653) *SL(2) *ML(1135,541) *SL(5)')zhongzhi.append('*ML(79,210) *ML(184,271) \^A \{BACKSPACE} ' + str(result[0]) + ' *ML(536,273) *SL(8) *ML(513,391) *ML(34,333) *SL(1) *ML(1135,543) *SL(1) *ML(355,336) *SL(4) *ML(900,566) 清理两件套工单 *ML(1077,631) *SL(3) *ML(1134,541) *SL(1) *ML(1131,626) *SL(4)')shenpi.append('*ML(139,272) \^A \{BACKSPACE} ' + str(result[0]) + ' *ML(715,274) *SL(5) *ML(178,419) *ML(178,419) *SL(5) *ML(954,549) *ML(785,574) *ML(781,583) 结束两件套工单 *ML(1180,646) *SL(2) *ML(1135,541) *SL(4)')else:cant_find+=numelif len(num) == 17:huifu.append('*ML(139,272) \^A \{BACKSPACE} ' + num.strip() + ' *ML(715,274) *SL(5) *ML(241,389) *ML(241,389) *SL(5) *ML(838,508) 结束两件套工单 *ML(1105,653) *SL(2) *ML(1135,541) *SL(5)')zhongzhi.append('*ML(79,210) *ML(184,271) \^A \{BACKSPACE} ' + num.strip() + ' *ML(536,273) *SL(8) *ML(513,391) *ML(34,333) *SL(1) *ML(1135,543) *SL(1) *ML(355,336) *SL(4) *ML(900,566) 清理两件套工单 *ML(1077,631) *SL(3) *ML(1134,541) *SL(1) *ML(1131,626) *SL(4)')shenpi.append('*ML(139,272) \^A \{BACKSPACE} ' + num.strip() + ' *ML(715,274) *SL(5) *ML(178,419) *ML(178,419) *SL(5) *ML(954,549) *ML(785,574) *ML(781,583) 结束两件套工单 *ML(1180,646) *SL(2) *ML(1135,541) *SL(4)')conn.close()# 返回结果页面,传递查询结果return render_template('result.html', huifu=huifu,zhongzhi=zhongzhi,shenpi=shenpi,cant_find=cant_find)# 主程序入口
if __name__ == '__main__':app.run(debug=True,port=)
一个python+flask和SQLite的数字查找以及Dataload命令生成的小工具相关推荐
- 如何检查一个Python字符串是否只包含数字?
如何检查一个Python字符串是否只包含数字? python String类中有一个名为isdigit()的方法,如果字符串中所有字符都是数字且至少有一个字符,则返回true,否则返回false. p ...
- python Flask 连接sqlite
文章目录 Fask SQLite介绍 sqlite连接字符串 flask 连接 sqlite的源码 Fask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采 ...
- 【Python的自学之路】(六):案例分析第四课-小工具2.0
目录 序言 背景 思路 代码及解析 跋文 序言 小工具1.0版本,备份oracle存储过程的小工具上篇文章已经都了解完毕了,下面继续进行功能升级,2.0版本-表数据的导出功能. 背景 案例分析第四课- ...
- InkImageDataSetGenerator-开源一个可用于机器学习的书写轨迹图片生成的小工具
这是一个简单易用的图片数据集生成小工具,基于OpenCV和UWP Ink API,它可以根据指定的手写轨迹生成一系列各个角度的图片.每张图片的尺寸和总体数量都是可以指定的,均存放在统一的生成目录中.h ...
- python+flask+html/css+mysql+BAE 打造CSDN简历自动生成系统(附网站完全源码)
1.背景 一直想自己动手写个web app玩玩,前几天看了一个github的resume自动生成的web-app,所以就动手仿造了一个csdn的简历生成器.结构很简单,前端是html/c ...
- python从键盘获取输入数字_python获取从命令行输入数字的方法
本文实例讲述了python获取从命令行输入数字的方法.分享给大家供大家参考.具体如下: #---------------------------------------- # Name: numeri ...
- python读取excel写入数据库_python实现读取excel写入mysql的小工具详解
Python是数据分析的强大利器 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python如何读取excel,并使 ...
- python 参数解析器_Python中最好用的命令行参数解析工具
接下来只剩下 argparse 这一神器,它几乎能满足我对命令解析器的所有需求.它支持解析一参数多值,可以自动生成help命令和帮助文档,支持子解析器,支持限制参数取值范围等等功能. 身为老司机,还是 ...
- 分享自动生成对联小工具的Python开发过程
前段时间用Python写了个生成对联的小程序,程序主要功能就是可以生成对联图片,用指定的背景根据输入的对联内容在程序目录中生成对联图片.生成的图片文件如下所示: 打开一幅生成的图片可以看到如下效果: ...
最新文章
- git 命令简单总结
- linux内核网络协议栈--架构分析(十八)
- MagicalRecord使用中的注意事项
- Windows Server 2008 R2修改远程桌面连接数
- 图像处理技术(三)白平衡
- python文件封装成jar_【Python】Python文件打包为可执行文件
- ArrayList源码解读(jdk1.8)
- 微博上一些有用的话(四)
- MarkdownPad2安装Awesomium SDK-Windows官方链接
- 地理坐标定位和计算距离
- 【技术沙龙】星火计划 | 腾讯自研Kona JDK技术分享沙龙火热报名中
- java.sql.SQLException: No suitable driver found for “jdbc:mysql://localhost:3306/db1“;
- An error occurred at line: [14] in the generated java file:
- JS字符串截取方法 JS字符串查找指定字符方法 JS字符串替换指定字符方法 JS字符串插入指定位置方法 JS字符串删除指定字符方法
- 银行信贷管理系统的客户关系管理子模块
- Linux如何永久以命令行界面形式登录
- 使用JMS进行消息传递
- 代码文档生成工具Doxygen教程及实例
- 动态规划——矩阵链相乘
- 利用 git status -uno 找回不小心删除了些啥