QQ用户信息管理系统是一种可以有效管理用户信息的应用程序,包含用户ID,昵称,性别,年龄等信息。本文将介绍如何使用面向对象编程(OOP)的思想来对QQ用户信息管理系统代码进行封装。
本项目使用以下开发环境:
在开始开发之前,请确保已安装上述开发环境。让我们按照以下步骤进行项目准备:
使用以下命令创建项目目录和虚拟环境:
mkdir qq-user-info && cd qq-user-info
python3 -m venv venv
source venv/bin/activate
在虚拟环境中使用以下命令安装MySQL库:
(venv) pip install mysql-connector-python
在MySQL数据库中创建名为“qq_user_info”的数据库,并创建一个“user_info”表来存储用户信息。该表包含以下字段:id(主键,自动生成),nickname,gender,age。
3.1 创建数据库:
CREATE DATABASE qq_user_info;
3.2 创建表:
USE qq_user_info;
CREATE TABLE user_info (
id INT(11) not null AUTO_INCREMENT,
nickname VARCHAR(50) not null,
gender VARCHAR(10) not null,
age INT(4) not null,
PRIMARY KEY (id)
);
在进行项目开发之前,请确保已连接到MySQL数据库。让我们按照以下步骤进行项目开发:
在项目目录中创建一个名为“db.py”的文件,并定义一个名为“Database”的类来连接MySQL数据库:
import mysql.connector
class Database:
def __init__(self, user, password, host, database):
self.user = user
self.password = password
self.host = host
self.database = database
self.connection = None
self.cursor = None
def connect(self):
try:
self.connection = mysql.connector.connect(
user=self.user,
password=self.password,
host=self.host,
database=self.database
)
self.cursor = self.connection.cursor()
print("Connected to database")
except mysql.connector.Error as e:
print('Error connecting to database: ', e)
def disconnect(self):
if self.cursor:
self.cursor.close()
if self.connection:
self.connection.close()
print("Disconnected from database")
在项目目录中创建一个名为“user.py”的文件,并定义一个名为“UserInfo”的类来封装用户信息:
class UserInfo:
def __init__(self, nickname, gender, age):
self.nickname = nickname
self.gender = gender
self.age = age
def __str__(self):
return "昵称:{},性别:{},年龄:{}".format(self.nickname, self.gender, self.age)
在项目目录中创建一个名为“qq.py”的文件,并定义一个名为“QQUserManager”的类来管理用户信息:
from db import Database
from user import UserInfo
class QQUserManager:
def __init__(self, user, password, host, database):
self.db = Database(user, password, host, database)
self.db.connect()
def __del__(self):
self.db.disconnect()
def add_user(self, user_info):
sql = "INSERT INTO user_info(nickname, gender, age) VALUES('{}', '{}', {})".format(
user_info.nickname, user_info.gender, user_info.age
)
self.db.cursor.execute(sql)
self.db.connection.commit()
print("添加用户信息成功:", str(user_info))
def get_users(self):
sql = "SELECT * FROM user_info"
self.db.cursor.execute(sql)
data = self.db.cursor.fetchall()
users = []
for d in data:
user_info = UserInfo(d[1], d[2], d[3])
users.append(user_info)
return users
def delete_user(self, id):
sql = "DELETE FROM user_info WHERE id={}".format(id)
self.db.cursor.execute(sql)
self.db.connection.commit()
print("删除用户信息成功,ID:", str(id))
完整的项目代码可以在GitHub上下载:查看
通过面向对象编程(OOP)的思想,我们将QQ用户信息管理系统的代码进行了封装。使用这种方式进行代码开发,可以使代码更加简洁、易维护、易扩展。我们希望这篇文章对您有所帮助!