一、背景介紹
隨着大數據時代的到來,信息管理越來越重要。尤其對於企業而言,管理客戶信息是非常必要的,因為高效管理可以幫助企業更好地了解客戶,為客戶提供更好的服務。利用Python編程語言,我們可以輕鬆地創建一個客戶信息管理系統,方便快捷地管理客戶信息。
二、系統功能概述
本系統可以實現以下功能:
- 添加客戶信息
- 查詢客戶信息
- 修改客戶信息
- 刪除客戶信息
- 批量導入導出客戶信息表格
三、技術方案
本系統採用Python編程語言和Tkinter庫進行開發。Tkinter庫是Python標準庫中的一個GUI開發庫,使用簡單方便,且在各個操作系統上能夠兼容。同時,系統採用SQLite作為數據庫,SQLite是一種輕型的數據庫,使用方便,可以快速進行數據存取。
四、系統架構
本系統採用MVC架構。MVC是Model-View-Controller的縮寫,是一種軟件架構模式。M代表模型,即數據存儲和獲取;V代表視圖,即用戶界面;C代表控制器,即業務邏輯處理。通過這種架構,實現了界面與業務邏輯的分離,靈活性高,易於維護。
五、系統實現
1. 創建數據庫
在Python中,我們可以使用sqlite3標準庫來創建數據庫,以實現數據存取。在本系統中,我們需要建立客戶信息表格,可以執行以下代碼:
import sqlite3
# 創建客戶信息表格
def create_table():
conn = sqlite3.connect('customer.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS customer_info ( \
id INTEGER PRIMARY KEY, \
name TEXT, \
gender TEXT, \
age INTEGER, \
phone TEXT, \
address TEXT)')
conn.commit()
conn.close()
2. 添加客戶信息
在界面上,我們設置了一些文本框,用戶輸入相關信息後,點擊“添加”按鈕即可將信息添加到客戶信息表格中。以下是添加信息的代碼實現:
def add_customer():
name = name_entry.get()
gender = gender_var.get()
age = int(age_entry.get())
phone = phone_entry.get()
address = address_entry.get()
conn = sqlite3.connect('customer.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO customer_info (name, gender, age, phone, address) \
VALUES (?,?,?,?,?)', (name, gender, age, phone, address))
conn.commit()
conn.close()
messagebox.showinfo('提示信息', '添加成功')
clear_customer_info()
3. 查詢客戶信息
用戶輸入查詢條件(姓名、性別等),點擊“查詢”按鈕即可獲取相關信息。以下是查詢信息的代碼實現:
def query_customer():
query_name = query_name_entry.get()
query_gender = query_gender_var.get()
conn = sqlite3.connect('customer.db')
cursor = conn.cursor()
cursor.execute('SELECT id, name, gender, age, phone, address FROM customer_info \
WHERE name LIKE "%{}%" AND gender LIKE "%{}%"'.format(query_name,query_gender))
results = cursor.fetchall()
conn.close()
if len(results) == 0:
messagebox.showinfo('提示信息', '沒有查詢到數據')
else:
table.delete(*table.get_children())
for i, row in enumerate(results):
table.insert('', i, values=row)
messagebox.showinfo('提示信息', '查詢成功')
4. 修改客戶信息
用戶選擇一條數據,點擊“修改”按鈕,然後修改相關信息,點擊“保存”按鈕即可保存修改後的信息。以下是修改信息的代碼實現:
def update_customer():
update_id = selected_customer[0]
name = name_entry.get()
gender = gender_var.get()
age = int(age_entry.get())
phone = phone_entry.get()
address = address_entry.get()
conn = sqlite3.connect('customer.db')
cursor = conn.cursor()
cursor.execute('UPDATE customer_info \
SET name=?, gender=?, age=?, phone=?, address=? \
WHERE id=?', (name, gender, age, phone, address, update_id))
conn.commit()
conn.close()
messagebox.showinfo('提示信息', '修改成功')
clear_customer_info()
5. 刪除客戶信息
用戶選擇一條數據,點擊“刪除”按鈕即可將該條數據從客戶信息表格中刪除。以下是刪除信息的代碼實現:
def delete_customer():
delete_id = selected_customer[0]
conn = sqlite3.connect('customer.db')
cursor = conn.cursor()
cursor.execute('DELETE FROM customer_info WHERE id=?', (delete_id,))
conn.commit()
conn.close()
messagebox.showinfo('提示信息', '刪除成功')
clear_customer_info()
6. 批量導入導出客戶信息表格
用戶可以將客戶信息表格導出為Excel表格,也可以通過選取Excel表格進行批量導入。以下是導入導出信息的代碼實現:
# 導出Excel表格
def export_excel():
conn = sqlite3.connect('customer.db')
cursor = conn.cursor()
cursor.execute('SELECT id, name, gender, age, phone, address FROM customer_info')
results = cursor.fetchall()
conn.close()
if len(results) == 0:
messagebox.showinfo('提示信息', '沒有數據可以導出')
return
filename = filedialog.asksaveasfilename(defaultextension='.xlsx')
if filename:
workbook = xlsxwriter.Workbook(filename)
worksheet = workbook.add_worksheet()
headings = ['編號', '姓名', '性別', '年齡', '聯繫方式', '地址']
for i, heading in enumerate(headings):
worksheet.write(0, i, heading)
for i, row in enumerate(results):
worksheet.write(i+1, 0, row[0])
worksheet.write(i+1, 1, row[1])
worksheet.write(i+1, 2, row[2])
worksheet.write(i+1, 3, row[3])
worksheet.write(i+1, 4, row[4])
worksheet.write(i+1, 5, row[5])
workbook.close()
messagebox.showinfo('提示信息', '導出成功')
# 批量導入Excel表格
def import_excel():
filename = filedialog.askopenfilename(defaultextension='.xlsx')
if filename:
workbook = openpyxl.load_workbook(filename)
worksheet = workbook.active
rows = list(worksheet.iter_rows())
headings = []
for cell in rows[0]:
headings.append(cell.value)
data = []
for row in rows[1:]:
temp_row = []
for cell in row:
temp_row.append(cell.value)
data.append(temp_row)
conn = sqlite3.connect('customer.db')
cursor = conn.cursor()
for row in data:
cursor.execute('INSERT INTO customer_info (name, gender, age, phone, address) \
VALUES (?,?,?,?,?)', (row[1], row[2], row[3], row[4], row[5]))
conn.commit()
conn.close()
messagebox.showinfo('提示信息', '導入成功')
六、系統界面截圖
七、系統使用說明
用戶打開程序後,可以看到系統的主界面,裡面有各種功能的按鈕和輸入框。在使用之前,需要先創建客戶信息表格,即點擊“初始化數據庫”按鈕。然後就可以進行添加、查詢、修改、刪除、導入導出等操作。完成所有操作後,用戶可以點擊“退出”按鈕退出系統。
總結
本文介紹了如何用Python編程語言創建一個簡單的客戶信息管理系統。通過學習本文,您可以了解如何使用Python和Tkinter庫構建用戶接口,以及如何使用sqlite3庫進行數據存取。當然,您也可以在此基礎上深入拓展,實現更多更複雜的功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186380.html
微信掃一掃
支付寶掃一掃