在线教育平台项目——整体架构

Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了。

有一段时间没好好写文章了,可不是出去浪了,而是要做一个在线教育平台的项目,模仿着路飞学城,结果正好还赶上学校有一些课程要结课,忙里忙外的,今天也得交了,虽然不是很完善。
在这里插入图片描述

内容比较多,分了三篇文章才介绍完:
需求分析
设计 & 接口定义
整体架构

后记

写这篇博客的时候,这个项目已经到时间马上要交了,虽然还有很多不完善的地方,但也没办法了,总结一下整个项目吧。

整体来说,前端基本上都是用Vue写的,都是些基本操作,一些功能用到了Element

对于Vue还不是很熟悉,因此在Vue中还引入了jQuery和Boostrap,在这一步有些麻烦,安装+导入的,看了好多教程,有很多都不靠谱,走了很多弯路,可惜具体看过那些文章有些记不清么,后续再总结吧。

总结起来呢,前端貌似并没有用到什么比较深入的东西,都是通过API获取后端的数据,然后渲染到页面上。

对了,关于登录功能稍微说一下,从后端获取数据之后除了要渲染用户名、头像等之外,还要保存token、identity等数据在localStorage中,这个东西在后续需要身份验证的时候很有用。

在前后端交互的过程中,跨域是个很麻烦的问题,针对不同的报错,可以通过编写Django中间件解决:

class crossDomain(MiddlewareMixin):
	def process_response(self, request, response):
		response["Access-Control-Allow-Origin"] = "*"
		if request.method == "OPTIONS":
			response["Access-Control-Allow-Methods"] = "DELETE, PUT, POST"
			response["Access-Control-Allow-Headers"] = "content-type"
			response["Access-Control-Allow-Headers"] = "access_token"
		return response

后端的话,是通过Django实现的,添加了自己写的RBAC组件和Stark组件实现权限、课程、用户的管理,这方面的东西不再赘述。

先说个美中不足的地方吧,接入支付宝功能没有实现,上来第一步安装alipay-sdk-python就浪费了好多时间,这东西需要一个叫cryto的包,为了安装它我还专门又安装了一个Microsoft Visual C++ Build Tools,吐槽一句,微软真狗。

安装完了之后时间就已经超预期安排了,没有时间再详细研读支付宝开放平台的文档,没办法,这个功能就只能暂时搁置了,后续有时间再具体实现吧。

再讲讲登录,做登录认证的时候,在Redis中存储登录用户的token、username、identity等信息,方便后续某些功能需要身份验证的时候取用。

而针对不同的模型,都有其对应的序列化器Serializer处理,方便对数据的获取和验证。


Github地址:https://github.com/koking0/LuffyCity
提供几个测试账号:

学员:用户名:koking 密码:20001001
导师:用户名:wupeiqi 密码:20001001
管理员:用户名:Alex 密码:20001001

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章