当前位置: 首页 > 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 删除动态

在这里插入图片描述

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

相关文章:

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

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...

Linux 实验报告3-4

(大家好,今天我们来学习Linux的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 实验三 vi编辑器 一、实验目的 二、实验内容 三、主要实验步骤 实验报告 1.进入 vi。 2.建立一个文件&…...

网络安全之BGP详解

BGP;边界网关协议 使用范围;BGP范围,在AS之间使用的协议。 协议的特点(算法):路径矢量型,没有算法。 协议是否传递网络掩码:传递网络掩码,支持VLSM,CIDR …...

【MySQL精通之路】SQL优化(1)-查询优化(8)-嵌套联接优化

主博客: 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 上一篇: 【MySQL精通之路】SQL优化(1)-查询优化(7)-嵌套循环联接-CSDN博客 下一篇: 【MySQL精通之路】SQL优化(1)-查询优化(9)-外部联接优化-CSDN博客 与SQL标准相比&#xff0c…...

30V降8V、12V、24V3.5A车充降压芯片IC H4112 5V-30V

H4112确实是一款功能强大的异步降压型DC-DC转换器,它具备多种出色的特性和优势,使得它在电源管理领域有着广泛的应用。以下是对H4112主要特性和功能的详细解释: 内置30V耐压MOS: H4112内部集成了30V耐压的MOS管,这有…...

保护共享资源的方法(互斥锁)

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…...

树的非递归遍历(层序)

层序是采用队列的方式来遍历的 就比如说上面这颗树 他层序的就是:1 24 356 void LevelOrder(BTNode* root) {Que q;QueueInit(&q);if (root){QueuePush(&q, root);}while (!QueueEmpty(&q)){BTNode* front QueueFront(&q);QueuePop(&q);print…...

解决SpringBoot使用@Transactional进行RestTemplate远程调用导致查询数据记录为null的bug

开启事务过程中,如果远程调用查询当前已经开启但没有提交的事务,就会查不到数据。 示例代码 import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import o…...

pl/sql基础语法操作

oracle pl/sql语言(procedural language/sql)是结合了结构化查询与oracle自身过程控制为一体的强大语言。 语法执行块 语法结构: [ declare 可选 声明变量部分--declaration statements (1);]begin --执行部分--executable statements (2)…...

Vue 父组件向子组件传递数据

1、在子组件中,你需要声明你期望从父组件接收哪些props。这可以通过props选项完成,可以是一个数组或对象形式: export default {props: [message],props:{message:String }props: {message: String, // 类型检查count: {type: Nu…...

二十五、openlayers官网示例CustomOverviewMap解析——实现鹰眼地图、预览窗口、小窗窗口地图、旋转控件

官网demo地址: Custom Overview Map 这个示例展示了如何在地图上增加一个小窗窗口的地图并跟随着地图的旋转而旋转视角。 首先加载了一个地图。其中 DragRotateAndZoom是一个交互事件,它可以实现按住shift键鼠标拖拽旋转地图。 const map new Map({int…...

K8S Secret管理之SealedSecrets

1 关于K8S Secret 我们通常将应用程序使用的密码、API密钥保存在K8S Secret中,然后应用去引用。对于这些敏感信息,安全性是至关重要的,而传统的存储方式可能会导致密钥在存储、传输或使用过程中受到威胁,例如在git中明文存储密码…...

Gone框架介绍25 - Redis模块参考文档

文章目录 Redis 参考文档配置项import 和 bury使用分布是缓存 redis.Cache接口定义使用示例 使用分布式锁 redis.Locker接口定义使用示例 操作Key,使用 redis.Key接口定义 使用 Provider 注入 redis 接口使用示例 直接使用redis连接池接口定义使用示例 Redis 参考文…...

SpringBoot前置知识02-spring注解发展史

springboot前置知识01-spring注解发展史 spring1.x spring配置只能通过xml配置文件的方式注入bean,需要根据业务分配配置文件&#xff0c;通过import标签关联。 spring1.2版本出现Transactional注解 <?xml version"1.0" encoding"UTF-8"?> <be…...

C++ TCP发送Socket数据

DEVC需要加入ws2_32库 #include <iostream> #include <winsock2.h>#pragma comment(lib, "ws2_32.lib")void sendData(const char* ip, int port, const char* data) {WSADATA wsaData;SOCKET sockfd;struct sockaddr_in server_addr;// 初始化Winsock…...

鸿蒙HarmonyOS开发中的易混点归纳-持续补充中

相关文章目录 鸿蒙HarmonyOS开发术语全解&#xff1a;小白也能看懂&#xff01; 文章目录 相关文章目录前言一、build()函数和Builder装饰器&#xff1f;二、自定义组件和系统组件&#xff08;内置组件&#xff09;三、组件和页面四、自定义弹窗和其他弹窗总结 前言 一、build…...

ue引擎游戏开发笔记(45)——添加游戏音效

1.需求分析&#xff1a; 截至目前&#xff0c;我们仍然在一个无声的世界游玩游戏&#xff0c;所以有必要为游戏增添一些声音&#xff0c;例如开火声&#xff0c;子弹撞击声等等。 2.操作实现&#xff1a; 1.这是一个较为简单的功能&#xff0c;类似特效的实现方法&#xff0c…...

202472读书笔记|《首先你要快乐,其次都是其次》——快乐至上,允许一切发生

202472读书笔记|《首先你要快乐&#xff0c;其次都是其次》——快乐至上&#xff0c;允许一切发生 《首先你要快乐&#xff0c;其次都是其次》作者林小仙&#xff0c;挺轻松的小漫画&#xff0c;清新的文字。 生而为人&#xff0c;我很抱歉&#xff0c;大可不必。 生活已经很难…...

8.STL中Vector容器的常见操作(附习题)

目录 1.vector的介绍 2 vector的使用 2.1 vector的定义 2.2 vector iterator 的使用 2.3 vector 空间增长问题 2.3 vector 增删查改 2.4 vector 迭代器失效问题 2.5 vector 在OJ中的使用 1.vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样&#xff0…...

5.23小结

1.java项目创新 目前想添加一个自动回复的功能和设置验证方式有&#xff08;允许任何人添加&#xff0c;禁止添加&#xff0c;设置回答问题添加&#xff0c;普通验证添加&#xff09; 目前只完成画好前端界面&#xff0c;前端发送请求&#xff0c;还有表的修改 因为涉及表字…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...