最近,我的好哥們給我提了一個新的需求,讓我用Python編程語言和MySQL數據庫創建一個簡單的身份證號碼查詢工具。這個工具可以掃描指定文件夾中的文件名,并將它們存儲到MySQL數據庫中。用戶只需輸入身份證號碼,就可以查詢文件名中是否包含這個身份證號碼。
其中,界面部分我決定使用PyWebIO,PyWebIO提供了一系列命令式的交互函數來在瀏覽器上獲取用戶輸入和進行輸出,將瀏覽器變成了一個“富文本終端”,可以用于構建簡單的Web應用或基于瀏覽器的GUI應用。PyWebIO還可以方便地整合進現有的Web服務,不需要編寫HTML和JS代碼,就可以構建出具有良好可用性的應用。
首先,確保你已經安裝了必要的 Python 庫。你可以使用以下命令安裝它們:
pip install pymysql pywebio
接下來,我們需要一個 MySQL 數據庫來存儲文件名。在這里,我們將數據庫配置信息存儲在一個 JSON 文件中,以方便管理和更新。
import jsonwith open(r"path/to/your/config.json", 'r', encoding='utf-8') as f: db_config = json.loads(f.read())
我們將使用 PyMySQL 庫來連接 MySQL 數據庫,創建一個表來存儲文件名,并實現插入和查詢操作。
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 模塊掃描文件夾中的文件,并將文件名插入到數據庫中。
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 界面,允許用戶輸入身份證號碼并查詢數據庫。
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 腳本打包為可執行文件。打開命令行終端,執行以下命令:
pyinstaller -F -w your_script_name.py
請將 your_script_name.py 替換為你的 Python 腳本文件名。執行完畢后,你將在 dist 文件夾中找到生成的可執行文件。
在游覽器中運行效果如下
通過這個簡單的工具,用戶可以輕松地查詢文件名中是否包含特定身份證號碼。當然,這只是一個靈活的基礎,可以根據需要繼續擴展和定制功能。
本文鏈接:http://www.www897cc.com/showinfo-26-24740-0.htmlPython的小應用--使用PyWebIO和PyMySQL創建身份證號碼查詢工具
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 蘋果揮刀斬殺“搖一搖”