当前位置: 首页 > 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;还有表的修改 因为涉及表字…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...