当前位置: 首页 > news >正文

【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


python社交交友平台系统设计与实现(源码+数据库)【独一无二】


目录

  • python社交交友平台系统设计与实现(源码+数据库)【独一无二】
  • 一、设计要求
  • 二、代码实现
    • 2.1 创建数据库
    • 2.2 用户登录
      • 2.3. 注册功能
      • 2.4. 用户菜单
    • 2.5. 更新资料功能
    • 2.6. 管理好友功能
    • 2.7. 添加好友功能
    • 2.8. 删除好友功能
    • 2.9. 查看好友列表功能
    • 2.10. 发布动态功能
    • 后面代码太多了,我就不一 一分析了直接看功能展示吧👇
  • 三、功能展示
    • 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 删除动态


一、设计要求

基于一门高级语言,搭建一个简易平台,所使用的数据库可以是MySQL或其他合适的数据库。例如类似以下内容的社交平台,可基于自己理解做适当变动,也可以自行设计其他应用场景,逻辑自治即可。

用户端:

  • 用户端用户可以注册,初始化用户id和密码
  • 用户可以登录,并修改个人基本信息,如姓名、性别、出生日期、年龄
  • 用户可以搜索、添加、删除好友,并将好友分组管理
  • 用户可以发表、修改朋友圈(朋友圈有字数限制),记录朋友圈最后更新时间
  • 用户可以查看好友的朋友圈(包含最后更新时间、其他人的评论),并进行评论用户可以删除自己的朋友圈,在删除时该朋友圈相关评论将被自动同时删除

管理员端:

  • 管理员拥有管理员id和密码
  • 管理员可以登录,并修改个人基本信息
  • 管理员可以注销某用户,并删除系统中所有与用户有关的信息管理员不可浏览用户的个人基本信息,但可以浏览所有朋友圈,进行审核和删除

基于理论课所学习的数据库设计相关知识,为你的系统设计合适的表结构、完整性约束、视图等。包含简单的事务管理、触发器等功能,具体内容自行设计为实现的功能建立合理的插入、删除、修改、查询代码逻辑,并为可能出现的代码报错提供错误处理机制至少实现一种交互方式,可以只实现命令行交互分别创建一位用户和管理员,并在数据库中初始化部分数据,便于验收。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈


二、代码实现

2.1 创建数据库

将下面信息更改为数据库信息,并且保证数据表都已经提前创建好。

import pymysql
import sysconnection = 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 删除动态

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “社交” 获取。👈👈👈

http://www.lryc.cn/news/350928.html

相关文章:

  • Linux 实验报告3-4
  • 网络安全之BGP详解
  • 【MySQL精通之路】SQL优化(1)-查询优化(8)-嵌套联接优化
  • 30V降8V、12V、24V3.5A车充降压芯片IC H4112 5V-30V
  • 保护共享资源的方法(互斥锁)
  • 树的非递归遍历(层序)
  • 解决SpringBoot使用@Transactional进行RestTemplate远程调用导致查询数据记录为null的bug
  • pl/sql基础语法操作
  • Vue 父组件向子组件传递数据
  • 二十五、openlayers官网示例CustomOverviewMap解析——实现鹰眼地图、预览窗口、小窗窗口地图、旋转控件
  • K8S Secret管理之SealedSecrets
  • Gone框架介绍25 - Redis模块参考文档
  • SpringBoot前置知识02-spring注解发展史
  • C++ TCP发送Socket数据
  • 鸿蒙HarmonyOS开发中的易混点归纳-持续补充中
  • ue引擎游戏开发笔记(45)——添加游戏音效
  • 202472读书笔记|《首先你要快乐,其次都是其次》——快乐至上,允许一切发生
  • 8.STL中Vector容器的常见操作(附习题)
  • 5.23小结
  • 文心一言 VS 讯飞星火 VS chatgpt (265)-- 算法导论20.1 4题
  • Flutter 中的 EditableText 小部件:全面指南
  • H800基础能力测试
  • 2024/5/24 Day38 greedy 435. 无重叠区间 763.划分字母区间 56. 合并区间
  • 【python】使用函数名而不加括号是什么情况?
  • 全文检索ElasticSearch简介
  • Github上传时报错The file path is empty的解决办法
  • Adobe Bridge BR v14.0.3 安装教程 (多媒体文件组织管理工具)
  • 嵌入式学习——3——TCP-UDP 数据交互,握手,挥手
  • 【LeetCode】【3】无重复字符的最长子串(1113字)
  • 溪谷联运SDK功能全面解析