QQ用户信息管理系统代码封装实战
创始人
2024-04-11 01:32:58
0

QQ用户信息管理系统是一种可以有效管理用户信息的应用程序,包含用户ID,昵称,性别,年龄等信息。本文将介绍如何使用面向对象编程(OOP)的思想来对QQ用户信息管理系统代码进行封装。

开发环境

本项目使用以下开发环境:

  • 编程语言:Python 3.8.5
  • 数据库:MySQL 5.7
  • IDE:PyCharm

项目准备

在开始开发之前,请确保已安装上述开发环境。让我们按照以下步骤进行项目准备:

1、创建项目目录和虚拟环境

使用以下命令创建项目目录和虚拟环境:

mkdir qq-user-info && cd qq-user-info
python3 -m venv venv
source venv/bin/activate

2、安装MySQL库

在虚拟环境中使用以下命令安装MySQL库:

(venv) pip install mysql-connector-python

3、创建数据库

在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数据库。让我们按照以下步骤进行项目开发:

1、创建数据库连接类

在项目目录中创建一个名为“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")

2、创建用户信息类

在项目目录中创建一个名为“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)

3、创建用户信息管理系统类

在项目目录中创建一个名为“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用户信息管理系统的代码进行了封装。使用这种方式进行代码开发,可以使代码更加简洁、易维护、易扩展。我们希望这篇文章对您有所帮助!

相关内容

热门资讯

鼻毛为什么会变白 鼻毛为什么会... 鼻毛变白的原因可有多种,可能是衰老所致,也可能是疾病所致。鼻毛与眉毛、头发一样,颜色主要是由鼻部毛囊...
甘草泡地龙的功效与作用用量 甘... 甘草泡地龙的功效与作用包括清热解毒、祛痰止咳、调和气血,详情如下:1.清热解毒甘草和地龙都有清热解毒...
维a酸乳膏一个月效果图男士 维... 概述维A酸乳膏是一种能影响骨的生长和上皮代谢的外用药,常用于辅助治疗寻常痤疮、皮肤角化症等疾病。寻常...
腰椎打了4个钢钉多久能工作 腰... 腰椎打了4个钢钉多久能工作受到恢复情况以及腰椎受损严重程度的影响,一般在2-3个月后就能工作。腰椎打...
女人吃桂附地黄丸吃多久一疗程 ... 桂附地黄丸女人吃了可以达到温补肾阳的功效,能够改善肾阳不足所引起的临床症状。女性在出现肾阳不足之后就...
后脑勺有横着的肉杠是脑梗纹吗 ... 概述后脑勺有横着的肉杠可能是因过度肥胖病或脂肪瘤等因素引起。为预防后脑勺出现横着的肉杠,要适度减肥、...
槲皮素和铁皮石斛是一样的功效吗 槲皮素和铁皮石斛的功效不同,但它们有一些相似之处。槲皮素和铁皮石斛对人体的功效是不同的。槲皮素是一种...
丹参滴丸和麝香保心丸同吃行吗 ... 丹参滴丸即复方丹参滴丸,与麝香保心丸二者虽然都常用于冠状动脉粥样硬化性心脏病的预防、治疗和急救,但在...
正常结痂化脓结痂图片对比 概述结痂是伤口愈合过程中的一个阶段。正常结痂的伤口肉芽组织和结痂体紧密结合,结痂处轻微发红,无流脓情...
身上红色的小血点像痣倪海厦 身... 这类红色小血点,应该视情况而定。若是刚出生的小婴儿,则可能是毛细血管痣,也即是人们口中常常提到的“胎...