【《基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)》12000字(論文)】_第1頁
【《基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)》12000字(論文)】_第2頁
【《基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)》12000字(論文)】_第3頁
【《基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)》12000字(論文)】_第4頁
【《基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)》12000字(論文)】_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

II基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)摘要教育是國之大計,是一個國家的未來。在線教育受疫情的影響發(fā)展迅猛。在線教育使得不同地區(qū)的學(xué)生可享受優(yōu)良的教育服務(wù),取得同樣的教學(xué)資源,達到教育資源共享的目的,讓學(xué)生的學(xué)習(xí)門檻降低,升高教育資源利用率。系統(tǒng)基于Python3.8編程語言,Django2.2版本框架編寫的在線教育系統(tǒng)。使用MySQL5.7版本數(shù)據(jù)庫。后臺管理使用Xadmin框架。使用B/S結(jié)構(gòu)進行開發(fā)。憑借Django對特殊字符轉(zhuǎn)碼的優(yōu)勢,完成對SQL注入、XSS、CSRF等常見網(wǎng)絡(luò)攻擊的防御。Xadmin框架擁有擴展性,便于后期維護更新,有效管理系統(tǒng)數(shù)據(jù)。通過前期的需求分析,后期的代碼開發(fā)。設(shè)計出來的在線教育網(wǎng)站系統(tǒng),界面簡潔大方,功能完整,使用方便。從用戶角度出發(fā)實現(xiàn)在線學(xué)習(xí),資料下載,課程評論收藏分享等功能。使用后臺管理框架,實現(xiàn)課程數(shù)據(jù)維護,用戶權(quán)限管理,相關(guān)課程推薦等功能。是一個完善的在線教育系統(tǒng),為教育事業(yè)的發(fā)展,資源的合理分配,注入新鮮血液,發(fā)展前景樂觀?!娟P(guān)鍵詞】MySQL;Django;在線教育;B/S結(jié)構(gòu);Python目錄第1章緒論 11.1研究背景 11.2研究目的和意義 11.3國內(nèi)外研究現(xiàn)狀 11.4本文的主要工作 21.5論文的組織結(jié)構(gòu) 2第2章相關(guān)技術(shù)介紹 32.1Python3.8開發(fā)語言 32.2Django2.2開發(fā)框架 32.3數(shù)據(jù)庫存儲技術(shù) 32.3.1Navicat 32.3.2MySQL5.7 42.3.3MariaDB 42.4uWSGI 42.5Nginx 52.6本章小節(jié) 5第3章系統(tǒng)分析 63.1可行性分析 63.1.1技術(shù)可行性 63.1.2操作可行性 63.2功能需求分析 63.2.1用戶需求分析 63.2.2授課機構(gòu)需求分析 73.2.3授課教師需求分析 83.2.4課程需求分析 83.2.5超級管理員需求分析 93.3系統(tǒng)流程圖 103.3.1注冊流程圖 103.3.2登錄流程圖 113.4安全性分析 12第4章系統(tǒng)設(shè)計 144.1設(shè)計目標 144.2系統(tǒng)架構(gòu)設(shè)計 144.3數(shù)據(jù)庫設(shè)計 164.3.1數(shù)據(jù)庫E-R圖與EER模型圖 164.3.2數(shù)據(jù)表設(shè)計 17第5章系統(tǒng)實現(xiàn) 225.1用戶功能模塊實現(xiàn) 225.1.1登錄功能 235.1.2注冊功能 245.1.3公開課功能 255.1.4授課教師功能 265.1.4授課機構(gòu)功能 275.2后臺管理模塊實現(xiàn) 295.3系統(tǒng)部署環(huán)境 32第6章系統(tǒng)測試 336.1測試目標 336.2系統(tǒng)功能測試 336.2.1用戶角度測試 336.2.2授課機構(gòu)授課教師角度測試 356.2.3超級管理員角度測試 366.3本章小節(jié) 37第7章總結(jié)與展望 387.1系統(tǒng)總結(jié) 387.2系統(tǒng)展望 38參考文獻 40PAGE1第1章緒論1.1研究背景教育是國之大計,世界正處于百年未有之大變局[1]。中國面臨著激烈的國際競爭。我國與發(fā)達國之間存在著經(jīng)濟貿(mào)易摩擦和科技競爭。探尋根源就是優(yōu)秀人才的競爭,教育教學(xué)工作的競爭。教育是推動社會進步的基石,可以激發(fā)民族創(chuàng)新活力,能夠提高國民綜合素質(zhì),發(fā)掘優(yōu)秀人才。對實現(xiàn)中華民主的偉大復(fù)興有著很大意義。由于疫情的影響[2],科技的發(fā)展,我國對在線教育給予了更多的政策和技術(shù)的支持。在線教育在我國的地位越來越重要,未來仍有較大進步空間,因此在互聯(lián)網(wǎng)上在線學(xué)習(xí)逐漸成為我國甚至是全世界的教育趨勢。因此,在線教育順應(yīng)了時代潮流的發(fā)展,能夠滿足更多用戶教育所需,有著重要的意義。1.2研究目的和意義在我國,學(xué)習(xí)資源分配問題仍然嚴峻,教育資源短缺,是問題的核心,優(yōu)秀師資力量與龐大的學(xué)生基數(shù)之間矛盾突出。疫情的爆發(fā)對于傳統(tǒng)線下教學(xué)模式有著很大的影響,老師無法在教室里教授學(xué)生知識。偏遠地區(qū)的學(xué)生無法受到優(yōu)良的教育,其所在的地區(qū)的教育資源將更加匱乏[3]。通過互聯(lián)網(wǎng)提供的便捷高效的信息傳播方式[3],在線教育有效緩解了這一現(xiàn)狀,通過在線教育,不同地區(qū)的學(xué)生可享受優(yōu)良的教育服務(wù),獲取相同的教學(xué)資源,實現(xiàn)共享教育資源,學(xué)生學(xué)習(xí)門檻降低,教育資源利用率提高。編寫一個在線教育平臺,有網(wǎng)絡(luò),就能隨時隨地學(xué)習(xí),解決當前學(xué)習(xí)存在的問題。1.3國內(nèi)外研究現(xiàn)狀在國外,隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,基于信息技術(shù)和在線視頻技術(shù),在線教育發(fā)展出了各種教學(xué)模式。非同步式教學(xué)模式、雙向交互式教學(xué)模式、預(yù)錄視頻單向式教學(xué)模式[4]。發(fā)達國家尤其是以美國為首的高校,都能自主開展網(wǎng)絡(luò)在線教育。課程基本覆蓋了高校所開展的全部學(xué)科的專業(yè)技能知識。以公開課等形式的課程為廣大群眾開放,讓普通人也可以學(xué)習(xí)頂尖高等學(xué)府的教育資源[5]。國外的在線教育更多的強調(diào)人人平等享受教學(xué)資源。我國在線教育研究經(jīng)歷了很很長時間的迭代,從以前使用遠程教育平臺學(xué)習(xí),到后來培訓(xùn)方式也轉(zhuǎn)為受外界影響較小線上教學(xué)的模式,隨著互聯(lián)網(wǎng)的發(fā)展也有許多公司借鑒國外的在線教育方式,整合高效學(xué)習(xí)資源。隨著新冠疫情的影響,在線教育發(fā)展更是火爆。技術(shù)升級結(jié)合大數(shù)據(jù),個性化分析等技術(shù)更加推動在線教育的發(fā)展。未來在線教育將擁有更加廣闊的發(fā)展前景。1.4本文的主要工作本文主要的工作是設(shè)計基于Django框架[5]的在線教育網(wǎng)站系統(tǒng),有著簡單大方的UI設(shè)計,穩(wěn)定的系統(tǒng)可用性,來滿足用戶的在線學(xué)習(xí)需要。使用Python3.8開發(fā)語言,基于MTV(ModelTemplateView)開發(fā)模式的Django框架[6],Xadmin后臺管理系統(tǒng),MySQL數(shù)據(jù)庫系統(tǒng)。在界面與使用上盡可能簡潔、大方還要具有通用化、規(guī)范化特點。1.5論文的組織結(jié)構(gòu)基于Python的在線教育網(wǎng)站的論文共分七章來書寫。各章節(jié)內(nèi)容如下:第1章闡述了研究背景,分析了國內(nèi)外研究現(xiàn)狀。第2章介紹基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)項目所使用的相關(guān)技術(shù)。第3章主要描述基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)項目的可行性分析。第4章系統(tǒng)架構(gòu)設(shè)計,數(shù)據(jù)庫模型圖,表結(jié)構(gòu)設(shè)計。第5章系統(tǒng)各模塊功能開發(fā)介紹。第6章測試系統(tǒng)各模塊功能實現(xiàn)。第7章對于畢業(yè)論文的總結(jié)與展望。

第2章相關(guān)技術(shù)介紹2.1Python3.8開發(fā)語言Python是一種優(yōu)雅、明確、簡單高級、通用的廣泛使用的解釋型編程語言[6]。具有強大的簡潔性,擴展性。對于同一功能的實現(xiàn)Python的代碼量遠遠小于C和Java。Python具備很強的可移植性,使得代碼可以在不同系統(tǒng)中的移植變得簡單,也易于代碼的整合;功能強大的第三方庫,使得開發(fā)人員開發(fā)過程中無需按照預(yù)設(shè)功能重寫邏輯,開發(fā)人員可以直接調(diào)用第三方庫,也可以修改庫中源代碼,以滿足開發(fā)者的開發(fā)需求。隨著Python的快速發(fā)展,各種行業(yè)的從業(yè)人員開始學(xué)習(xí)使用Python。國外的谷歌,臉書平臺,國內(nèi)的豆瓣、知乎等平臺都在使用Python作為首選開發(fā)語言。近年來興起的爬蟲,深度學(xué)習(xí),人工智能,大數(shù)據(jù)分析都有著Python的身影,Python也變得越來越重要。2.2Django2.2開發(fā)框架Django是基于Python編程語言開發(fā)的開源Web開發(fā)框架。本框架使用MTV(模型、視圖、模版)的設(shè)計模式[7]。Django的設(shè)計初衷是簡化數(shù)據(jù)庫驅(qū)動型網(wǎng)站開發(fā)成本,具有模塊插拔性和組件復(fù)用性的優(yōu)點[8]。Django框架核心包含:數(shù)據(jù)模型和數(shù)據(jù)庫介質(zhì)的對象映射器[9];用于處理URL分發(fā)器的正則表達式;視圖系統(tǒng)用來處理請求;模版系統(tǒng),在項目開發(fā)過程當中,開發(fā)人員可根據(jù)需求自由定制更新模板,開發(fā)性更加靈活[10]。2.3數(shù)據(jù)庫存儲技術(shù)2.3.1NavicatNavicat是一個開發(fā)維護人員用于操作數(shù)據(jù)庫的軟件,具有高效、對用戶友好且安全的特性。界面簡潔,操作方式簡單,可以幫助開發(fā)維護人員方便快捷簡單的對數(shù)據(jù)庫各項細節(jié)進行管理。采用圖像化界面管理,對比命令行管理方式,可以讓開發(fā)維護人員短時間內(nèi)上手操作數(shù)據(jù)庫。Navicat支持對目前大多數(shù)主流數(shù)據(jù)庫的遠程鏈接管理,且支持多種操作系統(tǒng),受到廣大開發(fā)維護人員的追捧。2.3.2MySQL5.7數(shù)據(jù)庫是一個交互性網(wǎng)站的核心功能,所有交互式網(wǎng)站都需要數(shù)據(jù)庫,數(shù)據(jù)庫也是網(wǎng)站的核心。MySQL是目前使用最多且操作最方便的數(shù)據(jù)庫[11]。MySQL5.7版本也是目前使用最穩(wěn)定的版本之一。它擁有更快的性能,更新的優(yōu)化器,更安全的設(shè)計理念,是目前網(wǎng)站數(shù)據(jù)庫開發(fā)最熱愛的版本。配置簡單,通過Docker容器即可快速創(chuàng)建啟動,配合Navicat數(shù)據(jù)庫管理工具[12],為項目開發(fā)如虎添翼。2.3.3MariaDB關(guān)于MariaDB的前世今生[12],MySQL的主導(dǎo)創(chuàng)始人MichaelWidenius把自己的MySQLAB公司以10億多美金的價格賣給了SUN,隨著SUN公司被甲骨文公司收購,Oracle公司也得到了MySQL的所有權(quán)[13]。隨后MichaelWidenius使用自己女兒Maria的名字創(chuàng)造了一個全新的數(shù)據(jù)庫管理系統(tǒng)MariaDB,MariaDB是MySQL的一個強大功能的開源分支,特點是完全兼容MySQL[14],其開源的特性也逐漸受到開發(fā)者的青睞。本項目開發(fā)時使用MySQL作為管理數(shù)據(jù)庫,開發(fā)完畢,上線時轉(zhuǎn)為MariaDB數(shù)據(jù)庫[15],所有庫表無痕遷移,使用方便簡單。2.4uWSGIuWSGI和Nginx一樣也是一個Web服務(wù)器,其相當于Django的項目容器,實現(xiàn)了uWSGI、WSGI等協(xié)議[16],在本項目云部署過程中DjangoWeb框架不直接和Nginx或者用戶瀏覽器交互,這個通信工作由uWSGI通過uwsgi協(xié)議實現(xiàn)。動態(tài)資源由uWSGI服務(wù)響應(yīng),靜態(tài)資源由Nginx服務(wù)響應(yīng)[17]。整個流程如圖2-1所示。圖2-1uWSGI響應(yīng)流程圖2.5Nginx支持多種協(xié)議的Web服務(wù)器Nginx,是一個具有高性能HTTP與反向代理優(yōu)點的服務(wù)器[18]。由俄羅斯Rambler.ru站點率先使用[19]。我們可以在幾乎所有的網(wǎng)站中看到該網(wǎng)站在使用Nginx技術(shù)。與Apache服務(wù)器相比較,Nginx服務(wù)器具有著占用內(nèi)存更少,服務(wù)器配置方便簡單,靜態(tài)資源處理能力更強,負載能力更強,服務(wù)更加穩(wěn)定的優(yōu)點[20]。Nginx在開發(fā)者開發(fā)過程及服務(wù)運行過程中提供負載均衡及端口轉(zhuǎn)發(fā)的功能。Nginx服務(wù)不涉及具體代碼執(zhí)行,不完成向框架通信,在讀取到服務(wù)請求時,根據(jù)請求需要將來源需求轉(zhuǎn)發(fā)到不同的接口,正因如此Nginx可以實現(xiàn)高并發(fā)的負載均衡,如圖2-2所示。圖2-2Nginx實現(xiàn)負載均衡2.6本章小節(jié)本章詳細敘述了,本項目在開發(fā)部署過程中使用到的具有代表性的關(guān)鍵技術(shù)。第一節(jié)介紹核心開發(fā)語言Python3.8;第二節(jié)介紹了Django開發(fā)框架,及其在開發(fā)中的優(yōu)勢;第三節(jié)通過三個小節(jié)介紹了所使用到的數(shù)據(jù)庫相關(guān)技術(shù);最后介紹了項目上線云部署的uWSGI與Nginx兩個Web服務(wù)器和他們在交互過程中的參與方式。

第3章系統(tǒng)分析3.1可行性分析3.1.1技術(shù)可行性疫情后在線教育領(lǐng)域發(fā)展火爆,各種技術(shù)模塊框架的支撐讓各種開發(fā)問題得到了簡單的解決方式。本系統(tǒng)使用Django框架,其功能強大,發(fā)展前景廣闊,使用云片網(wǎng)API短信發(fā)送接口實現(xiàn)網(wǎng)站登錄注冊時的動態(tài)驗證碼短信發(fā)送方式,使用Python的django-simple-captcha第三方插件作為圖片驗證碼生成方式。各種技術(shù)都有成熟的工具與可靠詳細的幫助文檔,本系統(tǒng)從技術(shù)層面上來分析是可行的。3.1.2操作可行性通過Xadmin插件搭建后臺管理系統(tǒng),權(quán)限定制分離,管理簡潔高效。超級管理員只需對不同用戶分配權(quán)限組即可管理用戶權(quán)限。制定合理的開發(fā)計劃,按照計劃完成工作。對各項技術(shù)深入學(xué)習(xí)研究,具體操作可行。面向用戶使用圖形化界面,注冊登錄使用四位動態(tài)驗證碼,符合用戶登錄注冊習(xí)慣。用戶可以對認可的課程進行收藏,系統(tǒng)會根據(jù)用戶所學(xué)的課程推薦相關(guān)課程以供學(xué)生學(xué)習(xí)。3.2功能需求分析3.2.1用戶需求分析當用戶訪問在線教育平臺時,最基礎(chǔ)也是最重要的功能就是用戶注冊登錄。用戶首先通過手機號注冊賬號。完成從游客到用戶身份的轉(zhuǎn)變。用戶進入個人中心后可以完善修改用戶的個人的信息,也可以在手機號驗證后更該手機號。在個人中心也可以看到用戶消息,收藏的課程和學(xué)習(xí)數(shù)據(jù),用戶相關(guān)操作如圖3-1所示。圖3-1用戶需求分析3.2.2授課機構(gòu)需求分析授課機構(gòu)分為培訓(xùn)機構(gòu),個人和高校,根據(jù)教師的授課特點擅長優(yōu)勢提供不同的課程服務(wù)??梢酝ㄟ^頂部的搜索框進行模糊查詢。可以按照用戶喜好,通過機構(gòu)城市或者機構(gòu)類型進行用戶的喜好篩選。用戶也可以按照機構(gòu)總學(xué)習(xí)人次,課程總量進行降序排列后篩選。授課機構(gòu)相關(guān)功能如圖3-2所示。圖3-2授課機構(gòu)需求分析3.2.3授課教師需求分析授課教師隸屬于授課機構(gòu),在授課機構(gòu),課程中起到鏈接上下的作用。本系統(tǒng)的授課教師可以申請為個人身份,也可以申請為授課機構(gòu)或者授課高校的教師。用戶可以對授課教師進行排序選擇,通過授課教師的人氣。可以把認可的授課教師分享到微信,朋友圈等交友平臺。也可以收藏教師。授課教師相關(guān)功能如圖3-3所示。圖3-3授課教師需求分析3.2.4課程需求分析課程是本系統(tǒng)的核心,是用戶的目的所在,也是本設(shè)計最初的目的。課程需求相關(guān)功能如圖3-4所示。圖3-4課程需求分析課程具有廣告位,設(shè)置之后可在首頁看到廣告位的輪播圖,用戶可以按照課程學(xué)習(xí)的次數(shù),課程的熱度,按照課程的上線時間進行排序篩選。課程信息對課程進行詳細的介紹,用戶可以看到當前課程的授課教師,授課機構(gòu),學(xué)習(xí)過該課程的同學(xué)。進入該課程的學(xué)習(xí)之后,用戶可以通過章節(jié)信息來學(xué)習(xí)相關(guān)章節(jié)??梢韵螺d該課程所需要的資料。通過推薦用戶也可以快速尋找到相關(guān)課程。3.2.5超級管理員需求分析超級管理員是一個項目不可或缺的部分,可以對所有數(shù)據(jù)進行處理,也可以根據(jù)需要添加管理員并給予不同的權(quán)限,以達到不同的權(quán)限需求。管理員權(quán)限可以分為以下幾個方面:(1)管理授課機構(gòu):管理授課機構(gòu)的城市信息,管理授課教師的信息,管理課程的詳細信息。(2)管理用戶:管理用戶狀態(tài),用戶信息修改,用戶權(quán)限管理。(3)權(quán)限管理:將不同權(quán)限打包成組,用戶權(quán)限定制。(4)管理維護廣告位,查看系統(tǒng)日志。超級管理員相關(guān)需求功能如圖3-5所示。圖3-5超級管理員需求分析3.3系統(tǒng)流程圖3.3.1注冊流程圖當用戶訪問網(wǎng)站,并且想進行學(xué)習(xí)但沒有賬號時,就需要進行注冊操作,注冊會自動跳轉(zhuǎn)到注冊界面,采用云片網(wǎng)短信驗證碼API接口,進行動態(tài)短息驗證碼注冊登錄,方便快捷,各數(shù)據(jù)輸入正確合規(guī)后,將數(shù)據(jù)保存到數(shù)據(jù)庫,并跳轉(zhuǎn)到登錄界面,使用注冊的手機號登錄。流程如圖3-6所示。圖3-6注冊流程圖3.3.2登錄流程圖用戶進入登錄頁面后,使用自己注冊的手機號作為賬號,使用預(yù)留的密碼進行登錄。還能使用注冊時的手機號碼,接收四位數(shù)的短信驗證碼,使用動態(tài)短信驗證碼登錄。登陸成功后可以進入個人信息頁面進行詳細信息的修改。流程如圖3-7所示。圖3-7登錄流程圖3.4安全性分析安全是一個網(wǎng)站的根基,沒有網(wǎng)站安全其他功能就無從談起。沒有一個人愿意用一個漏洞百出經(jīng)常泄露個人隱私的網(wǎng)站。所以網(wǎng)站的安全是開發(fā)過程中必須考慮的一個重要部分,本項目在網(wǎng)站安全性方面做了很多的防護措施。對于CSRF(跨站請求偽造),Django自身帶有對于CSRF攻擊的防護措施??蚣軙娭凭W(wǎng)開發(fā)人員在網(wǎng)站前端的HTML頁面中的form表單中添加{%csrf_token%}進行對攻擊的防護。項目啟動后,會保存value值用于驗證,只有這樣表單才能順利提交。如果不添加相應(yīng)代碼,網(wǎng)站回返回403禁止訪問信息,有效方正CSRF攻擊。此外,Django為防止SQL注入[22]和XSS跨站腳本攻擊,會對特殊字符進行轉(zhuǎn)譯,這不影響用戶的正常操作,也不會降低響應(yīng)速度,能夠有效規(guī)避安全風(fēng)險,數(shù)據(jù)安全得到有效保護。

第4章系統(tǒng)設(shè)計4.1設(shè)計目標通過核心功能的實現(xiàn)和各個模塊的實現(xiàn)。實現(xiàn)游客瀏覽公開課程,查看課程信息跳轉(zhuǎn)到注冊或者登錄頁面,轉(zhuǎn)為系統(tǒng)用戶后,查看課程信息及授課教師信息或者教師其他課程信息,還能查看授課機構(gòu)的信息富文本顯示。點擊課程進行視頻播放學(xué)習(xí),用戶可以對認可的課程、授課教師、授課機構(gòu)進行收藏。通過系統(tǒng)頂部搜索框匹配關(guān)鍵字對課程、教師、機構(gòu)進行模糊查詢??梢栽谙到y(tǒng)右側(cè)下載課程配套的學(xué)習(xí)資料。實現(xiàn)授課機構(gòu)對授課教師及其授課課程進行相關(guān)管理。完成系統(tǒng)的總體框架和每一個模塊的開發(fā),得到一個完整的設(shè)計結(jié)果,為項目實際開發(fā)提供指導(dǎo)和幫助,使項目成為一個完整可正常使用的系統(tǒng)。4.2系統(tǒng)架構(gòu)設(shè)計本系統(tǒng)使用的架構(gòu)是B/S架構(gòu),用戶可以直接通過瀏覽器像服務(wù)器發(fā)送請求,無需額外下載軟件。用戶的相關(guān)響應(yīng)請求通過Nginx與uWSGI服務(wù)器轉(zhuǎn)發(fā)到工程相應(yīng)的處理模塊中,前端接收數(shù)據(jù)的模塊接收數(shù)據(jù)庫返回的數(shù)據(jù),并通過網(wǎng)頁展示給用戶,具體系統(tǒng)架構(gòu)如圖4-1所示。圖4-1系統(tǒng)架構(gòu)圖我們可以看到系統(tǒng)架構(gòu)分為三個部分,web服務(wù)器層,項目層與最下邊的數(shù)據(jù)存儲層。我們逐一進行分析:Nginx服務(wù)器和uWSGI服務(wù)器組成本系統(tǒng)的服務(wù)器。兩者分工不同又相互補充。Nginx服務(wù)器只進行靜態(tài)資源處理,動態(tài)邏輯響應(yīng)如動態(tài)渲染或者是表單提交,將發(fā)送給uWSGI服務(wù)器進行響應(yīng)[15]。uWSGI服務(wù)器使用WSGI協(xié)議與Django項目交互,分工明確最終實現(xiàn)用戶請求。具體過程如圖4-2所示。圖4-2web服務(wù)器響應(yīng)過程項目使用MTV設(shè)計模式進行項目開發(fā)。該設(shè)計模式將Django框架分為三個層次。模型層(Model)處理數(shù)據(jù)部分的邏輯,鏈接數(shù)據(jù)庫對數(shù)據(jù)表進行增刪改查數(shù)據(jù)操作。前端HTML頁面監(jiān)聽事件通過鏈接傳遞到視圖層對應(yīng)的后端View邏輯里并接收返回的數(shù)據(jù)信息;視圖層處理邏輯,溝通模版模型。數(shù)據(jù)采用MariaDB進行存儲管理,有利于開發(fā)人員使用,有利于管理員維護與管理。對于體積較大的數(shù)據(jù),如教學(xué)視頻,本系統(tǒng)采用阿里云對象存儲OSS保存教學(xué)視頻,數(shù)據(jù)庫只存儲相應(yīng)的URL。用戶在觀看視頻時后臺直接通過相應(yīng)的URL結(jié)合video.js在前端播放視頻。通過阿里云對象存儲OSS,訪問速度得到提升,數(shù)據(jù)安全性得到有效保障。管理人員只需要進行簡單的操作就能完成視頻的上傳部署,提升系統(tǒng)綜合性能。4.3數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫是一個系統(tǒng)必不可少的核心部分,一個架構(gòu)合理,功能完備的數(shù)據(jù)庫,能夠便捷高效的管理系統(tǒng)各項數(shù)據(jù)。本系統(tǒng)線上部署使用MariaDB數(shù)據(jù)庫與開發(fā)過程中使用的MySQL數(shù)據(jù)庫相兼容,無縫轉(zhuǎn)換。通過對象關(guān)系映射(ORM)建立模型層(Model)和數(shù)據(jù)庫關(guān)系的映射,自動生成數(shù)據(jù)表。4.3.1數(shù)據(jù)庫E-R圖與EER模型圖EER(增強實體關(guān)系模型)是對E-R模型的進一步細化,能夠準確明了的描述數(shù)據(jù)與各種關(guān)系的特性,使管理員可以對抽象的事物進行事物模型分析,基于Python的在線教育網(wǎng)站系統(tǒng)設(shè)計與開發(fā)的E-R圖與EER圖。如圖4-3圖4-4所示。圖4-3系統(tǒng)E-R圖圖4-3增強實體關(guān)系模型4.3.2數(shù)據(jù)表設(shè)計Django框架創(chuàng)建會自動生成數(shù)據(jù)表,我們通過設(shè)計并結(jié)合自身開發(fā)需要對表進行繼承和擴展通過ORM映射成具體數(shù)據(jù)表。下面對部分核心表進行詳細說明(1)用戶信息表用戶信息表,用來存儲用戶的基本信息,繼承于Django框架自帶的AbstractUser表。具體表設(shè)計如表4-1所示。表4-1用戶信息表字段名數(shù)據(jù)類型字段含義說明idpasswordsuperuserusernameemailstaffbirthdaygenderaddressmobileimageintvarchartinyintvarcharvarchartinyintdatevarcharvarcharvarcharvarchar用戶編號用戶密碼超級管理員用戶用戶名郵箱管理員權(quán)限用戶生日性別男女注冊地址注冊手機號頭像主鍵自動生成加密后存儲默認為0確認為1非空可為空默認為0確認為1默認為空默認為男非空非空非空(2)課程信息表課程信息表,課程有關(guān)信息存儲在此表中。和授課機構(gòu)表與授課教師表通過外鍵進行相連。具體表設(shè)計如表4-2所示。表4-2課程信息表字段名數(shù)據(jù)類型字段含義說明idadd_timenamedesctimesdegreestudentsfavclicknoticecategorytagyouneed_knowteacher_telldetailimageteacher_idcourse_org_idclassicsbannerintdatevarcharvarcharintvarcharintintintvarcharvarcharvarcharvarcharvarcharlongtextvarcharintinttinyinttinyint課程編號添加課程的時間課程名課程相關(guān)描述分鐘時長學(xué)習(xí)難度學(xué)習(xí)次數(shù)課程被收藏次數(shù)課程被用戶點擊數(shù)公告類別標簽須知教師留言課程詳情圖片教師編號機構(gòu)編號經(jīng)典課程是否為播圖主鍵自動生成自動生成非空非空非空初中高級非空非空非空非空非空非空非空非空富文本相對路徑外鍵關(guān)聯(lián)教師外鍵關(guān)聯(lián)機構(gòu)默認為0為1經(jīng)典默認為0為1輪播課程章節(jié)信息單獨存儲為表,通過外鍵與課程相關(guān)聯(lián)。具體表設(shè)計如表4-3所示。表4-3章節(jié)信息表字段名數(shù)據(jù)類型字段含義說明idadd_timenametimescourse_idintdatevarcharintint章節(jié)id添加時間章節(jié)名課程時長課程id主鍵自動生成自動生成非空非空外鍵關(guān)聯(lián)課程每個章節(jié)的小節(jié)和視頻鏈接保存在課程視頻信息表中,具體表設(shè)計如表4-4所示。表4-4視頻信息表字段名數(shù)據(jù)類型字段含義說明idadd_timenametimesurllesson_idintdatevarcharintvarcharint視頻id添加時間視頻名視頻時長視頻鏈接章節(jié)id主鍵自動生成自動生成非空非空阿里云存儲地址外鍵關(guān)聯(lián)章節(jié)課程學(xué)習(xí)中的課程資源,存儲在課程資源表中,具體表設(shè)計如表4-5所示。表4-5課程資料表字段名數(shù)據(jù)類型字段含義說明idadd_timenamefilecourse_idintdatevarcharvarcharint課程資料id添加時間資料名文件鏈接課程id主鍵自動生成、自動生成非空非空外鍵關(guān)聯(lián)課程(3)授課機構(gòu)信息表授課機構(gòu)的各種信息,存儲在機構(gòu)信息表當中,具體表設(shè)計如表4-6所示。表4-6授課機構(gòu)信息表字段名數(shù)據(jù)類型字段含義說明idadd_timenamedesctagcategoryclickfavimageaddressstudentscoursescity_idauthgoldintdatevarcharlongtextvarcharvarcharintintvarcharvarcharintintinttinyinttinyint授課機構(gòu)編號添加授課機構(gòu)時間機構(gòu)名機構(gòu)的介紹機構(gòu)標簽機構(gòu)分類點擊次數(shù)收藏次數(shù)機構(gòu)logo機構(gòu)地址課程總學(xué)習(xí)次數(shù)課程數(shù)城市編號是否認證是否金牌主鍵,自動生成自動生成非空富文本非空個人高校機構(gòu)非空非空地址相對路徑非空非空非空外鍵關(guān)聯(lián)城市默認為0為1認證默認為0為1金牌(4)授課教師信息表授課教師信息表,存儲著授課教師的信息,具體表設(shè)計如表4-7所示。表4-7授課機構(gòu)表字段名數(shù)據(jù)類型字段含義說明Idadd_timenamework_yearswork_companywork_positionpointsclickfavageimageorg_iduser_idintdatevarcharintvarcharvarcharvarcharintintintvarcharintint教師編號添加教師時間教師名字工作時間(年)就職機構(gòu)職位教學(xué)特點點擊次數(shù)收藏次數(shù)教師年齡教師頭像授課機構(gòu)編號用戶編號主鍵自動生成自動生成非空非空非空非空非空非空非空非空地址相對路徑外鍵關(guān)聯(lián)授課機構(gòu)外鍵關(guān)聯(lián)用戶

第5章系統(tǒng)實現(xiàn)系統(tǒng)需求分析,可行性論述完成后,需要使用具體代碼按照設(shè)計思路,最終完成穩(wěn)定可靠功能完整的系統(tǒng)功能。本章詳細論述主要功能模塊的實現(xiàn)技術(shù)與方式,得到最終成果。5.1用戶功能模塊實現(xiàn)用戶可以在登錄后跳轉(zhuǎn)主頁查看課輪播圖,推薦課程廣告和授課機構(gòu),用戶可以通過關(guān)鍵字搜索公開課程,授課教師,授課機構(gòu)。當用戶沒有注冊時回自動跳轉(zhuǎn)到注冊頁面進行注冊,注冊成功后可以進入個人中西更改個人信息。主頁面如圖5-1所示。圖51主頁面5.1.1登錄功能用戶點擊主頁面右上角的登錄按鈕會跳轉(zhuǎn)到登錄頁面,可以通過輸入賬號和密碼并與數(shù)據(jù)庫比對進行登錄,也可以通過預(yù)留手機號接收四位數(shù)動態(tài)驗證碼登錄。如圖5-2圖5-3所示。圖52登錄頁面圖53動態(tài)驗證碼登錄頁面登錄頁面主要代碼如下:#用戶登錄方法內(nèi)置

classLoginView(View):

defget(self,request,*args,**kwargs):

#判斷用戶是否登錄

ifrequest.user.is_authenticated:

returnHttpResponseRedirect(reverse("index"))

#登錄頁輪播圖

banners=Banner.objects.all()[:3]

next=request.GET.get("next","")

#返回圖片驗證碼表單登錄頁面

login_form=DynamicLoginForm()

returnrender(request,"login.html",{

"login_form":login_form,

"next":next,

"banners":banners,

})5.1.2注冊功能用戶點擊主頁面右上角的注冊按鈕會跳轉(zhuǎn)到登錄頁面,可通過手機號進行注冊。如圖5-4所示。圖54注冊頁面注冊頁面主要代碼如下:defpost(self,request,*args,**kwargs):#注冊接口

register_post_form=RegisterPostForm(request.POST)

ifregister_post_form.is_valid():

#沒有注冊賬號依然可以登錄

mobile=register_post_form.cleaned_data["mobile"]

password=register_post_form.cleaned_data["password"]

##判斷用戶是否存在

#existed_users=UserProfile.objects.filter(mobile=mobile)

#ifexisted_users:

#user=existed_users[0]

#else:

#用戶不存在新建用戶

user=UserProfile(username=mobile)

user.set_password(password)#set_password將密碼加密

user.mobile=mobile

user.save()

login(request,user)

returnHttpResponseRedirect(reverse("index"))

else:

register_get_form=RegisterGetForm()#跳轉(zhuǎn)回登錄界面

returnrender(request,"register.html",{

"register_get_form":register_get_form,#配置顯示圖片驗證碼

"register_post_form":register_post_form,#顯示錯誤信息

})5.1.3公開課功能用戶可以點擊公開課標簽?zāi)J按照課程的上線時間展示,用戶可以通過熱門情況和參與人數(shù)降序排序,每頁默認顯示三個課程,自動分頁點擊課程可以進入課程學(xué)習(xí)頁面進行學(xué)習(xí)。頁面右端顯示推薦的課程。其界面如圖5-5圖5-6所示。圖55公開課頁面圖56公開課頁面5.1.4授課教師功能用戶就可以點擊授課教師標簽查看授課教師信息,可以按照人氣進行降序排序,也可以進行關(guān)鍵字查詢,頁面右端顯示授課教師排行榜,用戶可以點擊卡片跳轉(zhuǎn)查看授課教師信息,對認可的授課教師進行收藏,用戶也可以通過分享按鈕分享到各個平臺。其界面如圖5-7圖5-8所示。圖57授課教師頁面圖58授課教師詳情頁面授課教師頁面主要代碼如下:#講師詳情

classTeacherDetailView(View):

defget(self,request,teacher_id,*args,**kwargs):#get方法

teacher=Teacher.objects.get(id=int(teacher_id))

#收藏狀態(tài)

teacher_fav=False

org_fav=False

ifrequest.user.is_authenticated:

ifUserFavorite.objects.filter(user=request.user,fav_type=3,fav_id=teacher.id):

teacher_fav=True

ifUserFavorite.objects.filter(user=request.user,fav_type=2,fav_id=.id):

org_fav=True

hot_teachers=Teacher.objects.all().order_by("-click_nums")[:3]#熱門教師排序

returnrender(request,"teacher-detail.html",{

"teacher":teacher,

"teacher_fav":teacher_fav,

"org_fav":org_fav,

"hot_teachers":hot_teachers,

})5.1.4授課機構(gòu)功能用戶可以點擊頁面首頁的授課機構(gòu)標簽查看系統(tǒng)注冊的授課機構(gòu)??梢园凑沼脩粝埠茫ㄟ^機構(gòu)所在城市或者機構(gòu)的類型進行用戶的喜好篩選。用戶也可以按照機構(gòu)總學(xué)習(xí)人次,課程總量進行降序排列后篩選,篩選課程數(shù)多或者學(xué)習(xí)人次多的授課機構(gòu)進行學(xué)習(xí)。頂部的搜索框還能對授課機構(gòu)進行模糊查詢。用戶可以在頁面右端進行咨詢,數(shù)據(jù)會保存到后臺。其界面如圖5-9圖5-10所示。圖59授課機構(gòu)頁面圖510授課機構(gòu)詳情頁面授課機構(gòu)相關(guān)功能代碼如下:#從數(shù)據(jù)庫中獲取數(shù)據(jù)all_orgs=CourseOrg.objects.all()all_citys=City.objects.all()#讀取全部city數(shù)據(jù)#授課機構(gòu)熱度排名hot_orgs=all_orgs.order_by("-click_nums")[:3]#首頁搜索關(guān)鍵詞實現(xiàn)keywords=request.GET.get("keywords","")s_type="org"ifkeywords:all_orgs=all_orgs.filter(Q(name__icontains=keywords)|Q(desc__icontains=keywords))#django的數(shù)據(jù)庫or查詢方法#通過機構(gòu)類別對課程機構(gòu)篩選category=request.GET.get("ct","")#取出前端傳遞的數(shù)據(jù),默認為空ifcategory:all_orgs=all_orgs.filter(category=category)#通過所在城市對課程機構(gòu)進行篩選city_id=request.GET.get("city","")ifcity_id:ifcity_id.isdigit():all_orgs=all_orgs.filter(city_id=int(city_id))#對機構(gòu)進行排序sort=request.GET.get("sort","")ifsort=="students":all_orgs=all_orgs.order_by("-students")elifsort=="courses":all_orgs=all_orgs.order_by("-course_nums")org_nums=all_orgs.count()#執(zhí)行數(shù)據(jù)庫count語句,前端顯示共幾家#對課程機構(gòu)數(shù)據(jù)進行分頁try:page=request.GET.get('page',1)exceptPageNotAnInteger:page=1p=Paginator(all_orgs,per_page=3,request=request)#每頁顯示幾條數(shù)據(jù)幾個機構(gòu)orgs=p.page(page)5.2后臺管理模塊實現(xiàn)后臺是系統(tǒng)管理員管理入口,是一個完整的系統(tǒng)不可或缺的核心模塊。系統(tǒng)使用開源Xadmin插件替代Django默認admin模塊實現(xiàn)系統(tǒng)管理功能。Xadmin插件集成日志管理功能和權(quán)限管理功能,用戶可根據(jù)需要對源碼進行修改定制功能,其界面如圖5-11圖5-12圖5-13所示。圖511后臺管理頁面圖5-12富文本編輯課程詳情圖5-12關(guān)聯(lián)數(shù)據(jù)添加關(guān)聯(lián)數(shù)據(jù)添加代碼如下:#添加課程信息時同時添加章節(jié)信息暫時不支持兩層嵌套不能添加視頻

#添加章節(jié)信息

classLessonInline(object):

model=Lesson

#style="tab"

extra=0

exclude=["add_time"]

classCourseResourceInline(object):

model=CourseResource

style="tab"

extra=1

#結(jié)束#用戶只讀字段

readonly_fields=["students","add_time"]#用戶數(shù),添加時間

#exclude=["click_nums","fav_nums"]#用戶點擊數(shù)收藏數(shù)且看不到

ordering=["click_nums"]

#后臺顯示圖標

model_icon='fafa-pause'

inlines=[LessonInline,CourseResourceInline]#添加課程信息時同時添加章節(jié)信息,VideoInline

style_fields={#detail字段顯示為富文本

"detail":"ueditor"

}不同權(quán)限管理權(quán)限設(shè)置代碼如下:#不同教師顯示不同課程信息用戶綁定講師名

defqueryset(self):

qs=super().queryset()#返回信息

ifnotself.request.user.is_superuser:#判斷是否為超級管理員

qs=qs.filter(teacher=self.request.user.teacher)

returnqs5.3系統(tǒng)部署環(huán)境表5-1系統(tǒng)部署環(huán)境工具名稱備注服務(wù)器系統(tǒng)開發(fā)語言數(shù)據(jù)庫框架服務(wù)器阿里云服務(wù)器Centos7Python3.8MariaDB5.8Django2.2Nginx、uWSGI

第6章系統(tǒng)測試6.1測試目標系統(tǒng)測試是一個完整系統(tǒng)必須的測試步驟,關(guān)乎著系統(tǒng)的穩(wěn)定運行。在開發(fā)過程中穿插白盒測試使用打斷點的方式對開發(fā)的功能進行測試,目的是在開發(fā)過程中發(fā)現(xiàn)問題解決問題,避免系統(tǒng)開發(fā)完畢后小問題擴大為大問題,導(dǎo)致系統(tǒng)崩潰,之前的開發(fā)心血白白浪費。系統(tǒng)部署到云端后,通過黑盒測試,模擬正常業(yè)務(wù),對所有功能進行統(tǒng)一測試。本測試將從用戶角度、授課教師角度、授課機構(gòu)角度、超級管理員角度進行系統(tǒng)測試。使用火狐瀏覽器,配合人工操作的方式對系統(tǒng)數(shù)據(jù)準確性、數(shù)據(jù)安全性、功能完整性等等問題和需要改進功能。6.2系統(tǒng)功能測試6.2.1用戶角度測試表6-1用戶角度測試結(jié)果測試類別測試過程預(yù)期目標測試結(jié)果注冊輸入已經(jīng)注冊過的手機號輸入正確手機號不符合標準密碼錯誤短信驗證碼正確短信驗證碼彈出手機號已被注冊驗證短信發(fā)送成功彈出密碼無效信息彈出驗證碼錯誤信息注冊成功,跳轉(zhuǎn)首頁通過測試通過測試通過測試通過測試通過測試登錄手機號或密碼錯誤手機號密碼都正確手機號或圖片驗證碼錯誤手機號驗證碼都正確錯誤的四位動態(tài)驗證碼正確短四位動態(tài)驗證碼顯示用戶名或密碼錯誤成功登陸并跳轉(zhuǎn)顯示字段不符合規(guī)范成功發(fā)送短信驗證碼彈出驗證碼錯誤信息登錄成功,跳轉(zhuǎn)首頁通過測試通過測試通過測試通過測試通過測試通過測試課程相關(guān)功能查看輪播圖廣告位通過關(guān)鍵字進行課程搜索按照課程熱門成度進行排序按照參與人數(shù)進行排序課程頁面分頁點擊課程詳情課程收藏分享視頻資料下載課程評論顯示切換正常搜索成功降序排序降序排序點擊頁碼跳轉(zhuǎn)正確跳轉(zhuǎn)實現(xiàn)功能下載正常評論正常顯示通過測試通過測試通過測試通過測試通過測試通過測試通過測試通過測試通過測試教師相關(guān)功能通過關(guān)鍵字搜索教師通過人氣對教師排序點擊教師查看教師詳情教師收藏分享點擊課跳轉(zhuǎn)實現(xiàn)功能排序正常顯示正常功能正常正常跳轉(zhuǎn)通過測試通過測試通過測試通過測試通過測試機構(gòu)相關(guān)功能通過關(guān)鍵字搜索搜索機構(gòu)按照不同預(yù)設(shè)排序點擊機構(gòu)查看機構(gòu)詳情點擊課程或教師跳轉(zhuǎn)實現(xiàn)功能排序正常富文本顯示機構(gòu)信息正常跳轉(zhuǎn)通過測試通過測試通過測試通過測試個人中心功能性別改為男生學(xué)習(xí)過的課程收藏的教師個人消息修改成功顯示全部學(xué)習(xí)課程顯示收藏的教師信息顯示我的全部消息通過測試通過測試通過測試通過測試登錄失敗測試結(jié)果如圖6-1所示。圖6-1登錄失敗測試結(jié)果動態(tài)驗證碼錯誤,注冊失敗測試結(jié)果如圖6-2所示。圖6-2動態(tài)驗證碼錯誤測試結(jié)果6.2.2授課機構(gòu)授課教師角度測試表6-2授課機構(gòu)授課教師角度測試結(jié)果測試類別測試過程預(yù)期目標測試結(jié)果授課機構(gòu)功能修改教師姓名刪除章節(jié)資料調(diào)整視頻播放順序刪除用戶咨詢信息顯示新的教師姓名無法顯示原資料視頻順序被修改刪除后無法顯示通過測試通過測試通過測試通過測試授課教師功能修改課須知刪除章節(jié)資料修改課程標簽管理他人課程顯示新的課程須知無法顯示原資料顯示新的課程標簽沒有查看修改權(quán)限通過測試通過測試通過測試通過測試課程信息管理測試結(jié)果如圖6-3所示。圖6-3課程信息管理測試結(jié)果6.2.3超級管理員角度測試表6-3超級管理員角度測試結(jié)果測試類別測試過程預(yù)期目標測試結(jié)果登錄后臺普通賬號登錄授課教師登錄授課機構(gòu)登錄超級管理員登錄彈出錯誤信息有教師權(quán)限組權(quán)限有課程機構(gòu)權(quán)限組權(quán)限擁有全部權(quán)限通過測試通過測試通過測試通過測試管理系統(tǒng)修改用戶地址修改授課機構(gòu)類型為高校取消教師認證修改課程封面圖日志管理成功修改前端顯示機構(gòu)類型為高校前端不顯示認證教師牌前端顯示新的封面查看日志信息通過測試通過測試通過測試通過測試通過測試權(quán)限管理給新用戶添加權(quán)限管理權(quán)限組添加相應(yīng)權(quán)限將部分權(quán)限打包成組通過測試通過測試權(quán)限組管理測試結(jié)果如圖6-4所示。圖6-4權(quán)限組管理測試結(jié)果6.3本章小節(jié)本章通過從戶角度、授課教師角度、授課機構(gòu)角度、超級管理員角度進行測試,系統(tǒng)預(yù)設(shè)目標均已經(jīng)實現(xiàn),模塊化編程概念,業(yè)務(wù)流程合理,能夠滿足一個在線學(xué)習(xí)系統(tǒng)的需要。第7章總結(jié)與展望7.1系統(tǒng)總結(jié)經(jīng)過思考前與充分的前期準備,基于Python的在線教育網(wǎng)站系統(tǒng)已經(jīng)開發(fā)完畢,通過了測試,并且進行了項目在線部署,提供了一個穩(wěn)定的在線學(xué)習(xí)網(wǎng)站系統(tǒng)。系統(tǒng)的設(shè)計,前期的準備工作非常重要。通過大量的閱讀相關(guān)文獻,研究市場上已有的系統(tǒng),充分的了解到了在線教育系統(tǒng)的工功能點。本文的工作總結(jié)如下,首先,通過搜索引擎搜索相關(guān)在線學(xué)習(xí)系統(tǒng)的資料,深入研究其業(yè)務(wù)邏輯關(guān)系與功能實現(xiàn)方式,挖掘系統(tǒng)缺陷。并通過作者學(xué)習(xí)的開發(fā)知識,確定開發(fā)語言為Python3.8編程語言,開發(fā)框架為Django2.2網(wǎng)站開發(fā)框架等技術(shù)細節(jié)。其次確定在線教育系統(tǒng)的業(yè)務(wù)需求,角色劃分,權(quán)限管理,基本功能流程圖,數(shù)據(jù)庫相關(guān)關(guān)系設(shè)計。最后根據(jù)開發(fā)計劃,書寫項目代碼,穿插相關(guān)技術(shù)的學(xué)習(xí)。對項目中的開發(fā)接口,例如:手機驗證碼接收,圖片驗證碼顯示與驗證等功能,進行白盒測試,確定每個功能模塊的正常使用。項目開發(fā)完成后,模擬用戶正常業(yè)務(wù),對系統(tǒng)進行黑盒測試,確保系統(tǒng)的穩(wěn)定運行。解決了人們想在課堂之余進行在線學(xué)習(xí)的問題。作者在開發(fā)過程中收獲頗豐,開發(fā)過程是對本科相關(guān)專業(yè)知識學(xué)習(xí)的檢驗。完成基于Python的在線教育網(wǎng)站系統(tǒng)后,各種專業(yè)知識融匯貫通起來,串成了一條線,不在獨立作戰(zhàn)。作者的進步要歸功于本次畢業(yè)設(shè)計的開發(fā)過程。7.2系統(tǒng)展望因為開發(fā)經(jīng)驗不足,系統(tǒng)的設(shè)計與代碼的實現(xiàn)上還有許多地需要優(yōu)化改進,項目代碼存在冗余。需要改進的地方如下:1.移動端發(fā)展迅猛,但是屏幕較小,由于時間問題沒有對前端進行項目優(yōu)化,沒有采用動態(tài)勢頁面布局,對于小屏用戶體驗不好。2.鴻蒙系統(tǒng)發(fā)展態(tài)勢迅猛,配合鴻蒙系統(tǒng),實現(xiàn)在線教育系統(tǒng)從網(wǎng)頁端到手機端的過渡,為鴻蒙系統(tǒng)生態(tài)圈貢獻自己的力量。3.使用video.js進行視頻播放,只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論