一、设计要求
基于一门高级语言,搭建一个简易平台,所使用的数据库可以是MySQL或其他合适的数据库。例如类似以下内容的社交平台,可基于自己理解做适当变动,也可以自行设计其他应用场景,逻辑自治即可。
用户端:
- 用户端用户可以注册,初始化用户id和密码
- 用户可以登录,并修改个人基本信息,如姓名、性别、出生日期、年龄
- 用户可以搜索、添加、删除好友,并将好友分组管理
- 用户可以发表、修改朋友圈(朋友圈有字数限制),记录朋友圈最后更新时间
- 用户可以查看好友的朋友圈(包含最后更新时间、其他人的评论),并进行评论用户可以删除自己的朋友圈,在删除时该朋友圈相关评论将被自动同时删除
管理员端:
- 管理员拥有管理员id和密码
- 管理员可以登录,并修改个人基本信息
- 管理员可以注销某用户,并删除系统中所有与用户有关的信息管理员不可浏览用户的个人基本信息,但可以浏览所有朋友圈,进行审核和删除
基于理论课所学习的数据库设计相关知识,为你的系统设计合适的表结构、完整性约束、视图等。包含简单的事务管理、触发器等功能,具体内容自行设计为实现的功能建立合理的插入、删除、修改、查询代码逻辑,并为可能出现的代码报错提供错误处理机制至少实现一种交互方式,可以只实现命令行交互分别创建一位用户和管理员,并在数据库中初始化部分数据,便于验收。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
二、代码实现
2.1 创建数据库
将下面信息更改为数据库信息,并且保证数据表都已经提前创建好。
import pymysql import sys connection = pymysql.connect(host='127.0.0.1', user='root', password='root', db='SocialNetwork', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
执行如下命令,提前把数据库创建好:
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
CREATE DATABASE SocialNetwork; USE SocialNetwork; -- 用户表 CREATE TABLE Users ( user_id INT AUTO_INCREMENT PRIMARY KEY, # 略.... name VARCHAR(50), gender ENUM('M', 'F', 'Other'), birth_date DATE, age INT ); -- 好友关系表 CREATE TABLE Friends ( user_id INT, # 略.... PRIMARY KEY (user_id, friend_id) ); -- 朋友圈表 CREATE TABLE Moments ( moment_id INT AUTO_INCREMENT PRIMARY KEY, # 略....>👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈 FOREIGN KEY (user_id) REFERENCES Users(user_id) ); -- 评论表 CREATE TABLE Comments ( comment_id INT AUTO_INCREMENT PRIMARY KEY, # 略.... FOREIGN KEY (user_id) REFERENCES Users(user_id) );
2.2 用户登录
该函数实现用户登录功能,输入用户名和密码后,通过SQL查询匹配数据库中的用户信息。若匹配成功,则根据用户名判断是否为管理员,进入相应的菜单;否则,显示登录失败信息并返回主菜单。
def login(): username = input("请输入用户名: ") password = input("请输入密码: ") try: with connection.cursor() as cursor: sql = "SELECT * FROM Users WHERE username = %s AND password = %s" # 略 .... except Exception as e: print(e)
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
这段代码实现了一个简单的社交平台应用,包括用户和管理员的登录、注册、资料更新、好友管理、动态发布与查看、管理员对用户和动态的管理等功能。以下是对各个模块的实现思路分析:
2.3. 注册功能
def register(): username = input("请选择用户名: ") password = input("请选择密码: ") try: with connection.cursor() as cursor: # 略 .... except Exception as e: print("注册失败,错误: ", e) main_menu()
该函数实现用户注册功能,输入用户名和密码后,通过SQL插入操作将新用户信息保存到数据库。注册成功后返回主菜单,否则显示错误信息。
2.4. 用户菜单
def user_menu(user_id): print("\n======用户菜单======") print("1. 更新资料") print("2. 管理好友") # 略 ....>👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
该函数实现用户菜单,提供更新资料、管理好友、发布动态、查看并评论动态、注销等选项。根据用户输入选择相应的操作。
2.5. 更新资料功能
def update_profile(user_id): print("\n******更新资料******") name = input("请输入全名: ") # 略 ....
该函数实现更新用户资料的功能,通过SQL更新操作修改数据库中的用户信息。更新成功后返回用户菜单,否则显示错误信息。
2.6. 管理好友功能
def manage_friends(user_id): print("\n======管理好友======") print("1. 添加好友") print("2. 删除好友") # 略 ....
该函数实现管理好友的功能,提供添加好友、删除好友、查看好友列表、返回等选项。根据用户输入选择相应的操作。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
2.7. 添加好友功能
def add_friend(user_id): friend_name = input("请输入要添加的好友用户名: ") group_name = input("请输入该好友的分组名称: ") try: with connection.cursor() as cursor: # 略 ....
该函数实现添加好友的功能,通过SQL查询确定好友用户ID后,再通过SQL插入操作将好友关系保存到数据库。操作完成后返回管理好友菜单。
2.8. 删除好友功能
def remove_friend(user_id): friend_name = input("请输入要删除的好友用户名: ") try: with connection.cursor() as cursor: sql = "SELECT user_id FROM Users WHERE username = %s" cursor.execute(sql, (friend_name,)) # 略 ....
该函数实现删除好友的功能,通过SQL查询确定好友用户ID后,再通过SQL删除操作移除好友关系。操作完成后返回管理好友菜单。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
2.9. 查看好友列表功能
def list_friends(user_id): try: with connection.cursor() as cursor: sql = "SELECT username FROM Users WHERE user_id IN (SELECT friend_id FROM Friends WHERE user_id = %s)" cursor.execute(sql, (user_id,)) results = cursor.fetchall() # 略 ....
该函数实现查看好友列表的功能,通过SQL查询获取用户的所有好友并显示。操作完成后返回管理好友菜单。
2.10. 发布动态功能
def post_moment(user_id): content = input("请输入动态内容(最多300字符): ") if len(content) > 300: # 略 ....
该函数实现发布动态的功能,输入动态内容后,通过SQL插入操作将动态保存到数据库。发布成功后返回用户菜单,否则显示错误信息。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
后面代码太多了,我就不一 一分析了直接看功能展示吧👇
三、功能展示
3.1 用户端
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
3.1.1 用户登录
3.1.2 用户注册
3.1.3 更新用户资料
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
3.1.4 管理好友
3.1.4.1 添加好友
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
3.1.4.2 删除好友
3.1.4.3 好友列表
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
3.1.5 发布朋友圈
3.1.6 查看并评论
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
3.2 管理员
3.2.1 查看所有用户
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
3.2.2 删除用户
3.2.3 查看所有动态
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈
3.2.4 删除动态
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈