Python基于SQlite的通讯录管理系统
时间: 2024-04-16 20:06:08 浏览: 123
好的,Python基于SQLite的通讯录管理系统可以分为以下几个模块:
1. 数据库模块:使用SQLite数据库存储联系人信息,提供增删改查接口。
2. 用户界面模块:提供图形用户界面,包括添加联系人、删除联系人、修改联系人、查询联系人等操作。
3. 数据处理模块:将用户界面的操作转化为数据库操作,处理数据库返回的结果并展示给用户。
下面是一个简单的实现代码:
```python
# 导入SQLite模块
import sqlite3
# 定义数据库文件名
DB_FILE = 'contacts.db'
# 连接数据库
def connect_db():
conn = sqlite3.connect(DB_FILE)
return conn
# 创建联系人表
def create_table(conn):
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS contacts
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
phone TEXT,
email TEXT)''')
conn.commit()
# 添加联系人
def add_contact(conn, name, phone, email):
cursor = conn.cursor()
cursor.execute('INSERT INTO contacts (name, phone, email) VALUES (?, ?, ?)', (name, phone, email))
conn.commit()
# 删除联系人
def delete_contact(conn, id):
cursor = conn.cursor()
cursor.execute('DELETE FROM contacts WHERE id = ?', (id,))
conn.commit()
# 修改联系人
def update_contact(conn, id, name, phone, email):
cursor = conn.cursor()
cursor.execute('UPDATE contacts SET name = ?, phone = ?, email = ? WHERE id = ?', (name, phone, email, id))
conn.commit()
# 查询联系人
def query_contact(conn, name):
cursor = conn.cursor()
cursor.execute('SELECT id, name, phone, email FROM contacts WHERE name like ?', ('%' + name + '%',))
return cursor.fetchall()
# 用户界面
def main():
conn = connect_db()
create_table(conn)
while True:
print('1. 添加联系人')
print('2. 删除联系人')
print('3. 修改联系人')
print('4. 查询联系人')
print('5. 退出程序')
choice = input('请输入选项: ')
if choice == '1':
name = input('请输入姓名: ')
phone = input('请输入电话: ')
email = input('请输入邮箱: ')
add_contact(conn, name, phone, email)
elif choice == '2':
id = input('请输入要删除的联系人id: ')
delete_contact(conn, id)
elif choice == '3':
id = input('请输入要修改的联系人id: ')
name = input('请输入新的姓名: ')
phone = input('请输入新的电话: ')
email = input('请输入新的邮箱: ')
update_contact(conn, id, name, phone, email)
elif choice == '4':
name = input('请输入要查询的联系人姓名: ')
contacts = query_contact(conn, name)
for contact in contacts:
print(contact)
elif choice == '5':
break
else:
print('输入错误,请重新输入!')
conn.close()
if __name__ == '__main__':
main()
```
这段代码中,我们首先定义了一个`DB_FILE`常量,作为SQLite数据库文件名,然后定义了一些数据库操作函数,如`connect_db()`、`create_table()`、`add_contact()`、`delete_contact()`、`update_contact()`、`query_contact()`等。最后,在`main()`函数中,我们通过输入输出实现了一个简单的用户界面,将用户输入的操作转化为相应的数据库操作,并将处理结果展示给用户。
阅读全文