当前位置:首页 > 科技  > 软件

Python的小应用--使用PyWebIO和PyMySQL创建身份证号码查询工具

来源: 责编: 时间:2023-11-14 17:09:37 405观看
导读最近,我的好哥们给我提了一个新的需求,让我用Python编程语言和MySQL数据库创建一个简单的身份证号码查询工具。这个工具可以扫描指定文件夹中的文件名,并将它们存储到MySQL数据库中。用户只需输入身份证号码,就可以查询文

最近,我的好哥们给我提了一个新的需求,让我用Python编程语言和MySQL数据库创建一个简单的身份证号码查询工具。这个工具可以扫描指定文件夹中的文件名,并将它们存储到MySQL数据库中。用户只需输入身份证号码,就可以查询文件名中是否包含这个身份证号码。o2A28资讯网——每日最新资讯28at.com

o2A28资讯网——每日最新资讯28at.com

其中,界面部分我决定使用PyWebIO,PyWebIO提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,将浏览器变成了一个“富文本终端”,可以用于构建简单的Web应用或基于浏览器的GUI应用。PyWebIO还可以方便地整合进现有的Web服务,不需要编写HTML和JS代码,就可以构建出具有良好可用性的应用。o2A28资讯网——每日最新资讯28at.com

准备工作

首先,确保你已经安装了必要的 Python 库。你可以使用以下命令安装它们:o2A28资讯网——每日最新资讯28at.com

pip install pymysql pywebio

接下来,我们需要一个 MySQL 数据库来存储文件名。在这里,我们将数据库配置信息存储在一个 JSON 文件中,以方便管理和更新。o2A28资讯网——每日最新资讯28at.com

import jsonwith open(r"path/to/your/config.json", 'r', encoding='utf-8') as f:    db_config = json.loads(f.read())

数据库操作

我们将使用 PyMySQL 库来连接 MySQL 数据库,创建一个表来存储文件名,并实现插入和查询操作。o2A28资讯网——每日最新资讯28at.com

def create_table(connection):    # 创建数据库表    create_table_query = """    CREATE TABLE IF NOT EXISTS files (        id INT AUTO_INCREMENT PRIMARY KEY,        file_name VARCHAR(255) NOT NULL UNIQUE    )    """    try:        with connection.cursor() as cursor:            cursor.execute(create_table_query)        connection.commit()    except Error as e:        print(f"Error: {e}")def insert_filename(connection, filename):    # 插入文件名到数据库表    insert_query = "INSERT INTO files (file_name) VALUES (%s)"    try:        with connection.cursor() as cursor:            cursor.execute(insert_query, (filename,))        connection.commit()    except Error as e:        print(f"Error: {e}")def get_filenames_from_db(connection):    # 从数据库中获取所有文件名    select_query = "SELECT file_name FROM files"    try:        with connection.cursor() as cursor:            cursor.execute(select_query)            result = cursor.fetchall()            return [row[0] for row in result]    except Error as e:        print(f"Error: {e}")        return []

文件夹扫描和数据存储

接下来,我们将使用 Python 的 os 模块扫描文件夹中的文件,并将文件名插入到数据库中。o2A28资讯网——每日最新资讯28at.com

import osdef scan_folder_and_insert(connection):    # 扫描文件夹并将文件名插入数据库    folder_path = r'C:/path/to/your/folder'    for filename in os.listdir(folder_path):        if os.path.isfile(os.path.join(folder_path, filename)):            insert_filename(connection, filename)

PyWebIO Web 界面

现在,我们将使用 PyWebIO 创建一个简单的 Web 界面,允许用户输入身份证号码并查询数据库。o2A28资讯网——每日最新资讯28at.com

from pywebio import start_serverfrom pywebio.input import input, TEXTfrom pywebio.output import put_text, put_tabledef search_file_by_id(connection):    id_number = input("请输入身份证号码:", type=TEXT)    filenames = get_filenames_from_db(connection)    results = [filename for filename in filenames if id_number in filename]    if results:        put_table([(result,) for result in results], header=['文件名'])    else:        put_text("没有找到包含身份证号码的文件名。")if __name__ == "__main__":    # 连接到MySQL数据库    try:        with connect(**db_config) as connection:            create_table(connection)            scan_folder_and_insert(connection)            # 启动Web界面            start_server(search_file_by_id, port=80)    except Error as e:        print(f"Error: {e}")

打包为可执行文件

最后,我们可以使用 PyInstaller 工具将 Python 脚本打包为可执行文件。打开命令行终端,执行以下命令:o2A28资讯网——每日最新资讯28at.com

pyinstaller -F -w your_script_name.py

请将 your_script_name.py 替换为你的 Python 脚本文件名。执行完毕后,你将在 dist 文件夹中找到生成的可执行文件。o2A28资讯网——每日最新资讯28at.com

在游览器中运行效果如下o2A28资讯网——每日最新资讯28at.com

图片o2A28资讯网——每日最新资讯28at.com

通过这个简单的工具,用户可以轻松地查询文件名中是否包含特定身份证号码。当然,这只是一个灵活的基础,可以根据需要继续扩展和定制功能。o2A28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-24740-0.htmlPython的小应用--使用PyWebIO和PyMySQL创建身份证号码查询工具

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 苹果挥刀斩杀“摇一摇”

下一篇: Git 的遴选和撤销操作是如何利用三路合并的

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 三万字盘点 Spring 九大核心基础功能

    大家好,我是三友~~今天来跟大家聊一聊Spring的9大核心基础功能。话不多说,先上目录:图片友情提示,本文过长,建议收藏,嘿嘿嘿!一、资源管理资源管理是Spring的一个核心的基础功能,不
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24 巧系列一体机目前已在线上线下各平台同步开售。onebot M24 巧系列采用一体化轻薄机身设计,最薄处为 10.15mm,拥有宝石红、午夜蓝、石墨绿、雅致
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top