论文总字数:26602字
目 录
1 引言 1
1.1 项目背景 1
1.2 项目目的 1
1.3 主要内容 2
2 理论支持 2
2.1 客户端采用微信小程序 2
2.1.1 微信小程序简介 2
2.1.2 微信小程序基本架构 3
2.1.3 微信小程序架构介绍 3
2.2 简单介绍网络编程中的HTTP请求 4
2.3 Nginx介绍 4
2.4 Python的Web微框架Flask介绍 5
2.5 MySQL介绍 5
2.6 Thrift介绍 5
2.7 Golang介绍 5
3 需求分析 6
3.1 系统的功能性需求 6
3.1.1 基于微信小程序的客户端 6
3.1.2 Nginx实现反向代理和负载均衡 6
3.1.3 Python实现API服务 7
3.1.4 各模块服务端 7
3.2 系统的非功能性需求 7
3.3 用例图 8
3.3.1 身份校验用例描述 9
3.3.2 浏览短视频用例描述 9
3.3.3 发布短视频用例描述 10
3.3.4 删除短视频用例描述 10
3.3.5 关注用例描述 11
3.3.6 取关用例描述 11
3.3.7 获取关注列表用例描述 12
3.3.8 获取粉丝列表用例描述 12
3.3.9 获取关注数用例描述 13
3.3.10 获取粉丝数用例描述 13
3.3.11 浏览评论用例描述 13
3.3.12 发表评论用例描述 14
3.3.13 点赞用例描述 14
3.3.14 取消点赞用例描述 15
3.3.15 获取点赞数用例描述 15
4 系统设计 15
4.1 系统结构 16
4.2 微信小程序设计 17
4.3 Nginx服务器设计 18
4.4 API服务设计 18
4.5 各模块服务设计 19
4.5.1 User模块接口设计 19
4.5.2 Item模块接口设计 19
4.5.3 Relation模块接口设计 19
4.5.4 Comment模块接口设计 20
4.6 数据库设计 20
4.6.1 用户信息表 20
4.6.2 短视频信息表 21
4.6.3 关注关系表 21
4.6.4 点赞关系表 21
4.6.5 评论信息表 22
5 系统实现 22
5.1 微信小程序客户端的实现 22
5.1.1 授权登录实现 22
5.1.2 首页实现 23
5.1.3 短视频详情页实现 24
5.1.4 个人页实现 25
5.1.5 发布短视频 25
5.2 实现Nginx负载均衡服务器 26
5.3 实现API服务 26
5.3.1 路由 26
5.3.2 RPC调用 26
5.3.3 授权登录及身份校验 27
5.3.4云存储视频和图片 28
5.4 实现各模块服务 28
5.4.1 User模块 29
5.4.2 Item模块 30
5.4.3 Relation模块 30
5.4.4 Comment模块 31
6 结束语 31
参考文献 32
致 谢 33
基于Python的校园短视频社交软件设计与实现
张祯杰
,China
Abstract: This paper describes the process of implementing a campus short video social Wechat APP. The system is divided into two main parts of client and server design. The client uses the mini program to develop and complete the simple and beautiful interface through the components provided by the mini program, and uses the API provided by the mini program to implement feedback with the user and the network request with the server. The service end mainly adopts the microservice architecture. The uppermost layer uses Nginx reverse proxy to implement load balancing and distributes requests from the client to the API service cluster. The API service is a layer that connects the ins and outs. It mainly receives requests from clients, performs simple data filtering and identity verification, invokes specific services to implement business logic, and finally packages the data back to the client. The most important module services complete the key business logic and persist important business data into Mysql. The interaction with the API uses the Thrift framework to implement multi-language RPC calls. Therefore, each module can be written separately, and different languages can be used, which greatly improves the development flexibility. This development uses two languages, Python and Golang, to show how different languages can use Thrift for collaborative development. Whole system is discussed in detail from the aspects of system theory support, requirement analysis, system design and system implementation.
Key words: Mini Program;Nginx;Thrift;Python;Golang
1 引言
1.1 项目背景
随着互联网的快速发展,手机已经代替电脑成为人们最普遍使用接触网络的媒介。在庞大的互联网社区中,社交不可避免的成为一大重要讨论话题。在传统的图文社交不能满足人们表达丰富的情感精神世界的情况下,短视频应运而生,人们可以通过简短的视频来展示技能、搞怪幽默、分享生活等等。短视频由于内容较短,可以独立成篇,也可以做成系列形式。和微电影、直播相比,短视频不需要特别专业的拍摄方式和大量的精力投入,通过手机简单操作即可完成,这大大提高了短视频的产出效率。对于普通观众来说,因为大城市工作节奏的加快,碎片时间越来越多,地铁上、公交上等随处可见的地方都能看到短视频的身影。因为他们没有大量的时间去完整看完十几、二十分钟的长视频,更不可能在短暂的等待进行追剧、看电影等行为,短视频恰到好处的填补了这一空白。
现在的社会趋势亦是如此,大学生作为步入社会的一个重要阶段,当然也会紧跟社会的潮流。通过对身边同学和其他大学情况的调查,大学生在使用短视频进行娱乐社交的比例越来越高。在这种情况下,传统的短视频特性限制已经不能覆盖大学生等缺少社会经历的群体。在社会上的流行元素、视频特征和大学生的生活经历存在的一定差异,而专门针对大学生这一群体的短视频社交软件目前仍然处于空白的状态,所以现在正是推广这一类型软件很好的时机。
校园短视频社交的关键在校园,可以通过校园这一维度让产品再进一步的独特化,针对不同的校园形成不同的特点。学生可以在校园短视频社交软件上进行生活记录、学习分享、趣事讨论等等针对学校的短视频分享,可以让观看这一短视频的大学生产生更亲切的感觉,更加拥有带入感。当然在视频内容的限制上也可以对于大学生这一特征进行定制化措施,让整个短视频环境更加符合大学校园。
微信毫无疑问拥有移动端社交领域的绝对霸主地位,几亿的用户成为微信最强大的资源。而微信提供的小程序平台无疑为每一个开发者提供了绝对的用户流量。现在的大学生几乎都有自己的微信号,通过微信号授权登录短视频软件无疑帮用户省去了传统繁琐的注册登录步骤,可以优化用户的体验。所以基于微信小程序的短视频社交软件存在着极大的市场空间,急需一款软件来满足大学生的短视频社交生活。
1.2 项目目的
从项目角度出发,校园短视频社交软件是为了解决大学生群体的短视频社交需求。目前市面上缺少针对大学生短视频社交的软件,大学生这一群体没有被有效的集中,使得大学生对于短视频内容存在额外的筛选以及交流的隔阂。校园短视频社交软件恰到好处的弥补了这一空白,短视频的生产者是大学生,短视频的观看者也是大学生,让视频内容充满着大学生活的气息,使得用户之间更加容易得进行交流分享,达到良好的社交体验。项目主要功能为分享短视频和观看短视频,通过短视频这一核心来搭建其沟通交流的桥梁。而且支持了最基础的社交功能,如关注、点赞、评论,让用户可以非常方便的表面自己对短视频的情感,使得用户之间能产生更亲切的交流。
从开发角度出发,通过对校园短视频社交软件开发来学习完整项目的开发流程,体验从最初的需求分析、系统设计、数据库设计到实际的编码实现,最终部署上线的各个阶段。通过本次项目还能够熟悉微信小程序的开发流程,学习使用Nginx反向代理实现服务的负载均衡,学习分布式系统下的身份校验,学习使用thrift实现多语言的RPC调用,搭建拥有良好扩展性、维护性的真正的可提供高并发场景下的服务架构。
1.3 主要内容
主要使用Python完成服务端开发,微信小程序作为前端展示,完成一个微信小程序版的校园短视频社交软件。此系统主要提供用户上传短视频、浏览短视频的核心需要,同时辅以点赞、关注、评论等社交核心元素。
剩余内容已隐藏,请支付后下载全文,论文总字数:26602字
相关图片展示:
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;