在線教育平臺項目——整體架構

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

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