【基于Django框架的課程資源系統(tǒng)設(shè)計(jì)12000字(論文)】_第1頁(yè)
【基于Django框架的課程資源系統(tǒng)設(shè)計(jì)12000字(論文)】_第2頁(yè)
【基于Django框架的課程資源系統(tǒng)設(shè)計(jì)12000字(論文)】_第3頁(yè)
【基于Django框架的課程資源系統(tǒng)設(shè)計(jì)12000字(論文)】_第4頁(yè)
【基于Django框架的課程資源系統(tǒng)設(shè)計(jì)12000字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1基于Django框架的課程資源推薦系統(tǒng)設(shè)計(jì)摘要 11緒論 21.1選題背景 21.2課題研究現(xiàn)狀 21.2.1國(guó)內(nèi)外研究現(xiàn)狀 21.2.2國(guó)內(nèi)外研究現(xiàn)狀總結(jié) 31.3設(shè)計(jì)方法與實(shí)施方案 41.4論文結(jié)構(gòu)安排 42.相關(guān)技術(shù) 52.1推薦系統(tǒng)和推薦算法 52.2.1基于內(nèi)容的推薦算法 52.2.2基于協(xié)同過(guò)濾的推薦算法 52.2Python 62.3Django框架 62.4MySQL 72.5RESTfulAPI 72.6VUE 73.需求分析 73.1業(yè)務(wù)需求分析 73.2數(shù)據(jù)需求分析 83.3系統(tǒng)主要功能 84.系統(tǒng)設(shè)計(jì) 94.1業(yè)務(wù)流程設(shè)計(jì) 94.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 124.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 125系統(tǒng)實(shí)現(xiàn) 145.1開(kāi)發(fā)環(huán)境的選擇 145.2基本功能模塊的實(shí)現(xiàn) 145.2.1登錄模塊 145.2.2推薦資源模塊 155.2.3上傳模塊 165.2.4標(biāo)簽?zāi)K 175.2.5后臺(tái)功能模塊 186系統(tǒng)測(cè)試 216.1測(cè)試目的 216.2系統(tǒng)登錄功能測(cè)試 216.3系統(tǒng)用戶功能界面測(cè)試 226.4系統(tǒng)管理員界面測(cè)試 22結(jié)論 24參考文獻(xiàn) 25摘要:隨著信息技術(shù)的發(fā)展,基于人工智能的教育教學(xué)方式具有減輕教師工作量、使教師愈發(fā)關(guān)注學(xué)生個(gè)性化發(fā)展、提升學(xué)生的學(xué)習(xí)效率等優(yōu)點(diǎn)。由于教師差異化教學(xué)的方式,備課資源推薦系統(tǒng)會(huì)為不同教師推送不同的教育資源。但是目前的備課系統(tǒng)還是存在兩個(gè)問(wèn)題。(1)大多數(shù)面向K12階段的教師,忽略了其他階段教師的備課需求;(2)還沒(méi)有實(shí)現(xiàn)資源的個(gè)性化推薦。針對(duì)這些問(wèn)題,提出基于Django框架的備課資源推薦系統(tǒng),系統(tǒng)面向所有教師,在平臺(tái)中使用基于標(biāo)簽和基于關(guān)聯(lián)規(guī)則的推薦算法,使系統(tǒng)可以實(shí)現(xiàn)資源個(gè)性化的推薦。系統(tǒng)測(cè)試表明,系統(tǒng)有利于教師更加便捷、多元化的備課工作。關(guān)鍵詞:推薦系統(tǒng);推薦算法;標(biāo)簽;Django框架1緒論1.1選題背景目前,人工智能技術(shù)發(fā)展迅速,導(dǎo)致人們的生活形式和方式發(fā)生改變。人工智能技術(shù)為人們的生活創(chuàng)造了極大的便利,在日常生活的方方面面都可以看到人工智能的影子。現(xiàn)如今,生活質(zhì)量大幅度提升,科學(xué)發(fā)展如此迅速,學(xué)習(xí)方式越來(lái)越便捷,這些都離不開(kāi)人工智能的支持。在這個(gè)大力發(fā)力發(fā)展人工智能的時(shí)代,隨著教育資源的日漸雄厚,教學(xué)模式更加靈活,學(xué)習(xí)方式也更加智能更加多元化。針對(duì)教育領(lǐng)域來(lái)說(shuō),在1980年前后,人工智能賦能教育領(lǐng)域(AIED)就已經(jīng)開(kāi)始研究教育與人工智能結(jié)合。2015年,Pinkwart各種基礎(chǔ)的發(fā)展對(duì)AIED的持續(xù)發(fā)展有著重要的影響[1]。隨著人工智能和信息技術(shù)的飛速發(fā)展,現(xiàn)今教育的未來(lái)發(fā)展趨勢(shì)有兩種:第一種隨著人工智能技術(shù)融入教育行業(yè)當(dāng)中會(huì)產(chǎn)生新的教學(xué)方式對(duì)教師的授課工作產(chǎn)生極大的影響,人工智能技術(shù)很有可能會(huì)為學(xué)生創(chuàng)造新型的學(xué)習(xí)環(huán)境,使其可以更好的開(kāi)展學(xué)習(xí)工作;第二種人工智能可能會(huì)改變未來(lái)學(xué)生們就業(yè)方向,有關(guān)的新型工作方式也會(huì)影響到未來(lái)的人才培養(yǎng)方向[2]。針對(duì)學(xué)生等學(xué)習(xí)者來(lái)說(shuō),人工智能賦能與教育行業(yè),凸顯了學(xué)生在教育中的主體地位。在現(xiàn)今的教育學(xué)習(xí)平臺(tái)中最具有代表性的平臺(tái)就是慕課(MOOC),它將“學(xué)習(xí)”這一過(guò)程變成了不受時(shí)間、地點(diǎn)約束的事情,同時(shí)也為長(zhǎng)期學(xué)習(xí)提供了技術(shù)支持[3]。慕課平臺(tái)不僅為學(xué)生提供很多的優(yōu)質(zhì)學(xué)習(xí)資源之,其后臺(tái)還會(huì)對(duì)學(xué)生的學(xué)習(xí)內(nèi)容、行為等數(shù)據(jù)內(nèi)容進(jìn)行分析。形成后臺(tái)人物畫(huà)像并提供個(gè)性化的服務(wù),使學(xué)生有一個(gè)更好的學(xué)習(xí)工具,從而獲得更好的學(xué)習(xí)效果。針對(duì)教師們來(lái)說(shuō),教師位于教育教學(xué)的主導(dǎo)地位,主要是起到策劃學(xué)習(xí)方式和引導(dǎo)學(xué)習(xí)方向等作用。ASSISTMENTS平臺(tái)是一款優(yōu)秀的基于計(jì)算機(jī)環(huán)境的智能導(dǎo)學(xué)系統(tǒng),它以開(kāi)放性的應(yīng)用環(huán)境,適應(yīng)性的學(xué)習(xí)支架,多樣化的診斷報(bào)告和自動(dòng)化的再評(píng)補(bǔ)救等特征,為智能導(dǎo)學(xué)系統(tǒng)的研究和開(kāi)發(fā)提供了良好的范式[4]。這個(gè)平臺(tái)不僅有助于學(xué)生的學(xué)習(xí),教師還可以在平臺(tái)上對(duì)其教學(xué)方案進(jìn)行改進(jìn)[4]。LearningDesigner(LD)是一個(gè)面向教師的學(xué)習(xí)設(shè)計(jì)平臺(tái)。LD為教師們提供視覺(jué)化的學(xué)習(xí)設(shè)計(jì)方式,幫助教師思考并支持學(xué)生的學(xué)習(xí)。在LD中教師可以共享、借鑒別人優(yōu)秀的教學(xué)方式,并提供了工具來(lái)幫助教師完善他們的教學(xué)方案[5]。由上分可以分析得出,人工智能為教師的教學(xué)工作帶來(lái)了便利也為學(xué)生的學(xué)習(xí)創(chuàng)造了良好的環(huán)境。備課是教師在教學(xué)工作中必須重視的一個(gè)環(huán)節(jié)。因材施教是非常必要的教學(xué)方法,長(zhǎng)久以來(lái)都被教育學(xué)者所提倡,但在我國(guó)以應(yīng)試教育為主的大環(huán)境下,很難做到依據(jù)學(xué)生的知識(shí)水平、自身素質(zhì)以及學(xué)習(xí)能力來(lái)制定個(gè)性化的教學(xué)方案?,F(xiàn)今因材施教的可行性大大提高,本文致力設(shè)計(jì)一款備課系統(tǒng)結(jié)合人工智能技術(shù)。根據(jù)教師的歷史數(shù)據(jù)來(lái)預(yù)測(cè)教師所需要的教育資源,并進(jìn)行個(gè)性化的推薦,幫助教師更好的進(jìn)行備課工作。1.2課題研究現(xiàn)狀1.2.1國(guó)內(nèi)外研究現(xiàn)狀就國(guó)內(nèi)來(lái)說(shuō),對(duì)比教育領(lǐng)域,電商、短視頻方面的推薦技術(shù)會(huì)更為發(fā)達(dá),最具代表性的就是淘寶購(gòu)物和抖音短視頻。就抖音短視頻來(lái)說(shuō),在使用過(guò)程中它會(huì)根據(jù)你的瀏覽、點(diǎn)贊、評(píng)論等操作歷史為你推送類(lèi)似的視頻,這就是在發(fā)掘你的潛在興趣。由于個(gè)性化推薦算法在抖音短視頻中的應(yīng)用,大部分用戶可以很方便快捷的瀏覽到所需要和感興趣的內(nèi)容。這也是抖音在短時(shí)間內(nèi)快速崛起的主要原因。雖然應(yīng)用于教育領(lǐng)域的推薦技術(shù)起步時(shí)間比較晚,但是卻越來(lái)越受重視。查閱資料文獻(xiàn)得知,國(guó)內(nèi)于21世紀(jì)初期開(kāi)始重點(diǎn)研究推薦算法在教育領(lǐng)域的應(yīng)用,在隨后的幾年里得到迅速發(fā)展。萬(wàn)偉,樂(lè)軍在2009年研究了個(gè)性化學(xué)習(xí)資源推薦系統(tǒng)?;趯W(xué)習(xí)者訪問(wèn)歷史的興趣度和同組學(xué)習(xí)者的相似度分析,設(shè)計(jì)了個(gè)性化的推薦算法根據(jù)以上兩個(gè)角度來(lái)進(jìn)行資源推薦。利用該模型可以幫助學(xué)習(xí)者快速、簡(jiǎn)便地訪問(wèn)到類(lèi)似資源同時(shí)獲取成功經(jīng)驗(yàn)。這種資源主動(dòng)推送方式可以大幅降度資源的浪費(fèi)率[6]。唐國(guó)菊在2012年設(shè)計(jì)開(kāi)發(fā)了網(wǎng)絡(luò)學(xué)習(xí)資源個(gè)性化推薦系統(tǒng),利用協(xié)同過(guò)濾算法進(jìn)行資源個(gè)性化推薦,為了解決協(xié)同算法中的“數(shù)據(jù)稀疏”和“冷啟動(dòng)”問(wèn)題,他引入了基于人口統(tǒng)計(jì)信息的推薦和SlopeOne填充算法[7]。牛亞男在2012年設(shè)計(jì)開(kāi)發(fā)了教學(xué)資源個(gè)性化推薦系統(tǒng),該系統(tǒng)應(yīng)用了基于神經(jīng)網(wǎng)絡(luò)的混合推薦模型作為主要的推薦算法,主要由基于內(nèi)容推薦、基于項(xiàng)目協(xié)同過(guò)濾推薦、基于用戶協(xié)同過(guò)濾推薦和基于神經(jīng)網(wǎng)絡(luò)推薦這四個(gè)模塊組成。該推薦模型采用兩步訓(xùn)練的方法來(lái)解決用戶“冷啟動(dòng)”的問(wèn)題。所謂兩步訓(xùn)練方法就是系統(tǒng)中保持有一個(gè)基于全局用戶的偏好模型,當(dāng)有新用戶注冊(cè)時(shí),就把全局推薦模型應(yīng)用于其的初始推薦模型,然后根據(jù)用戶的使用參數(shù)來(lái)修正,使其更加貼近用戶喜好[8]。楊麗娜等人在2012年對(duì)將個(gè)性化推薦應(yīng)用于虛擬學(xué)習(xí)社區(qū)中進(jìn)行了研究,在表明個(gè)性化推薦基本原理的基礎(chǔ)上,說(shuō)明了虛擬社區(qū)的動(dòng)態(tài)形成原理,研究了激勵(lì)虛擬社區(qū)的基本架構(gòu)和技術(shù)流程[9]。馮亞麗等人在2017年設(shè)計(jì)并開(kāi)發(fā)了基于標(biāo)簽的多因素推薦算法,用戶可以根據(jù)自身需求對(duì)標(biāo)簽進(jìn)行自定義和優(yōu)先級(jí)排序。他們先對(duì)基于協(xié)同過(guò)濾、基于內(nèi)容推薦和基于關(guān)聯(lián)規(guī)則的推薦算法進(jìn)行分析從而引出基于標(biāo)簽的多因素推薦算法。該算法可以大幅度提升用戶使用率,提高平臺(tái)的使用效用[10]。就國(guó)外而言,特別是美國(guó),網(wǎng)絡(luò)的普及程度非常高,普及時(shí)間也非常早,推薦系統(tǒng)技術(shù)的應(yīng)用也非常的成熟,所以美國(guó)很多的網(wǎng)站推薦的系統(tǒng)集成度就非常高。早在1992年XeroxPARC的Goldberg等人就創(chuàng)建了基于系統(tǒng)過(guò)濾雛形的Tapestry來(lái)對(duì)郵件進(jìn)行過(guò)濾[11]。21世紀(jì)初,JT作為國(guó)外的一名研究者開(kāi)始對(duì)個(gè)性化推薦應(yīng)用于網(wǎng)絡(luò)學(xué)習(xí)這個(gè)方面進(jìn)行研究。加拿大薩斯卡通大學(xué)(UniversityofSaskatchewan)設(shè)計(jì)并開(kāi)發(fā)了可自動(dòng)進(jìn)化的智能網(wǎng)絡(luò)學(xué)習(xí)推薦系統(tǒng)[12],該系統(tǒng)不僅可以對(duì)每位學(xué)習(xí)者自適應(yīng),還能對(duì)開(kāi)放的web環(huán)境進(jìn)行自適應(yīng)。也就是說(shuō)它可以通過(guò)分析學(xué)習(xí)者在推薦系統(tǒng)上的交互歷史,動(dòng)態(tài)的、即時(shí)的獲取新的學(xué)習(xí)資源并集成添加到系統(tǒng)中。1.2.2國(guó)內(nèi)外研究現(xiàn)狀總結(jié)經(jīng)過(guò)上文的分析,可以得知雖然推薦算法已經(jīng)被應(yīng)用于教育行業(yè),也有很多的研究者們一直在努力研發(fā)更加適合教育體系的人工智能系統(tǒng),但是依然還有很多的平臺(tái)存在兩個(gè)主要的問(wèn)題。1.平臺(tái)面向的對(duì)象有很大的局限性,大多數(shù)備課平臺(tái)面向的教師以中小學(xué)階段為主。主要原因就是各個(gè)高校的專(zhuān)業(yè)劃分較為明細(xì),使用的教材也大不相同,這樣的話整合資源就會(huì)非常的困難。其次就是很多高校有自己的資源系統(tǒng),然而這些系統(tǒng)一般只對(duì)本校的教師開(kāi)放,這樣很多優(yōu)質(zhì)的教育資源就沒(méi)有辦法與外界共享。2.平臺(tái)推薦的資源也有很大的局限新,教師教學(xué)的資源需求沒(méi)有得到很好的推薦。許多的平臺(tái)只是將瀏覽、點(diǎn)贊、收藏等操作數(shù)量較高的教育資源推送給了教師,并沒(méi)有考慮到這是不是教師真正需要的,符合教師教學(xué)風(fēng)格的資源。雖然這樣也是非常方便的,而且容錯(cuò)率也會(huì)小很多,但是會(huì)影響到教師的教學(xué)方式,也不利于因材施教這一教育原則。本文研究的備課系統(tǒng)應(yīng)該把過(guò)往的優(yōu)質(zhì)教案作為參考資料,根據(jù)教師自身的教學(xué)風(fēng)格標(biāo)簽向教師推薦資源。當(dāng)然不只是平臺(tái)存在問(wèn)題,現(xiàn)在的教學(xué)模式也存在一些問(wèn)題,關(guān)注到分層教學(xué)是一種針對(duì)現(xiàn)存“一視同仁”的教學(xué)問(wèn)題由周光明,彭紅軍在2007年提出來(lái)的一種教學(xué)模式。分層教學(xué)是指針對(duì)學(xué)生知識(shí)、能力結(jié)構(gòu)和學(xué)習(xí)需求的不同而分群體選擇不同的教學(xué)目標(biāo)和內(nèi)容,從而實(shí)施不同的教學(xué)方法,采用不同的考核要求,從而讓不同層次的學(xué)生都可以充分發(fā)展的一種教學(xué)模式,符合以學(xué)生為本,因材施教的教育原則[13]。然而這也只是一個(gè)構(gòu)想,還面臨著諸多的問(wèn)題,例如教師分層備課所需內(nèi)容太過(guò)繁雜、部分學(xué)生與老師之間溝通交流過(guò)少等問(wèn)題。根據(jù)上面的分析,方便教師在大量的教育資源中方便快捷的得到所需要的,已然成為了對(duì)備課系統(tǒng)的研究重點(diǎn)。而對(duì)系統(tǒng)的研究重點(diǎn)又在于推薦算法,所謂推薦算法就是用戶的行為歷史數(shù)據(jù)會(huì)被在后臺(tái)進(jìn)行分析,從而把相似的資源進(jìn)行推送。推薦算法的應(yīng)用可以節(jié)約大量尋找的時(shí)間也更加方便的得到需要的資源。把推薦算法應(yīng)用于備課平臺(tái)中節(jié)約了教師備課所需要的時(shí)間,使教師可以多出時(shí)間來(lái)針對(duì)不同學(xué)生制定不同的教學(xué)方案。這樣教師在授課過(guò)程中可以加入自己的教學(xué)風(fēng)格,學(xué)生們也能夠更加輕松的收獲到更多的知識(shí)。1.3設(shè)計(jì)方法與實(shí)施方案經(jīng)過(guò)分析以上問(wèn)題,本文提出了基于Django框架的備課資源推薦系統(tǒng)。該系統(tǒng)面向所有教師,預(yù)計(jì)可以整合更多優(yōu)質(zhì)資源并對(duì)教師進(jìn)行個(gè)性化推薦,幫助教師更好更快的完成備課工作。在備課資源推薦系統(tǒng)中,主要應(yīng)用了基于標(biāo)簽和基于標(biāo)簽關(guān)聯(lián)規(guī)則的推薦算法。系統(tǒng)開(kāi)發(fā)環(huán)境需求如下所示:操作系統(tǒng):Windows10操作系統(tǒng)。數(shù)據(jù)庫(kù):MySQL數(shù)據(jù)庫(kù)。開(kāi)發(fā)語(yǔ)言:Python語(yǔ)言。1.4論文結(jié)構(gòu)安排在上述分析過(guò)后,本文在基于人工智能應(yīng)用于教育領(lǐng)域現(xiàn)狀的基礎(chǔ)上,著力設(shè)計(jì)、實(shí)現(xiàn)一個(gè)備課資源推薦系統(tǒng)。主要內(nèi)容分為七個(gè)部分,各部分具體安排如下:第一部分是緒論。在分析研究背景和國(guó)內(nèi)外研究現(xiàn)狀的基礎(chǔ)上,對(duì)本次的設(shè)計(jì)的意義與內(nèi)容進(jìn)行說(shuō)明。在最后對(duì)本次設(shè)計(jì)的整體進(jìn)行規(guī)劃安排。第二部分是相關(guān)技術(shù)。此部分將依次介紹推薦算法、Python、Django框架和MySQL數(shù)據(jù)庫(kù)。第三部分需求分析。此部分將從用戶的角度出發(fā)進(jìn)行角色分析,利用功能需求分析,畫(huà)出用例圖、系統(tǒng)結(jié)構(gòu)功能圖和數(shù)據(jù)庫(kù)E-R圖,系統(tǒng)運(yùn)行環(huán)境需求。第四部分系統(tǒng)設(shè)計(jì)。通過(guò)對(duì)系統(tǒng)需求的分析,對(duì)數(shù)據(jù)庫(kù)進(jìn)行概念結(jié)構(gòu)和邏輯結(jié)構(gòu)的設(shè)計(jì)。在設(shè)計(jì)平臺(tái)系統(tǒng)的架構(gòu)中,主要介紹系統(tǒng)的組成、功能模塊以及主要功能模塊的處理流程。第五部分系統(tǒng)實(shí)現(xiàn)。從用戶的功能到管理員功能的運(yùn)行流程詳細(xì)說(shuō)明,效果圖展示,功能設(shè)計(jì)部分核心代碼。第六部分系統(tǒng)測(cè)試。利用白盒測(cè)試方法檢查系統(tǒng)內(nèi)部的邏輯結(jié)構(gòu),檢查系統(tǒng)的實(shí)際運(yùn)行狀態(tài)是否與預(yù)期狀態(tài)一致。第七部分結(jié)束語(yǔ)。是對(duì)本次畢業(yè)設(shè)計(jì)的總結(jié),通過(guò)本次畢業(yè)設(shè)計(jì)找到自己的不足和需要改進(jìn)的地方。2.相關(guān)技術(shù)2.1推薦系統(tǒng)和推薦算法推薦系統(tǒng)利用收集到的用戶數(shù)據(jù)來(lái)預(yù)測(cè)系統(tǒng)用戶的潛在喜好和興趣,將對(duì)象個(gè)性化的推送給用戶。推薦系統(tǒng)的重要組成部分包括系統(tǒng)用戶、對(duì)象和個(gè)性化推薦算法。推薦系統(tǒng)根據(jù)收集到的用戶注冊(cè)信息、歷史行為數(shù)據(jù)和需求為用戶建模,同時(shí)也根據(jù)推薦對(duì)象的相關(guān)信息來(lái)構(gòu)造對(duì)象模型,最后推薦算法根據(jù)推薦策略、用戶信息和對(duì)象信息為用戶進(jìn)行個(gè)性化推薦[14]。推薦系統(tǒng)利用不同的信息源為用戶提供預(yù)測(cè)和項(xiàng)目的推薦,推薦算法在這個(gè)過(guò)程中起到著重要的作用[14]?,F(xiàn)在的推薦算法主要分為三大類(lèi):基于內(nèi)容的推薦算法、基于協(xié)同過(guò)濾的推薦算法和混合推薦,具體分類(lèi)如圖2-1所示。圖2-1推薦算法分類(lèi)2.2.1基于內(nèi)容的推薦算法基于內(nèi)容的推薦也叫做基于內(nèi)容的信息過(guò)濾推薦,該算法不需要用戶對(duì)推薦對(duì)象有過(guò)歷史行為,而是把對(duì)象中的內(nèi)容特征與用戶以往選擇的對(duì)象內(nèi)容特征進(jìn)行對(duì)比,選擇與用戶偏好、興趣、匹配程度較高的對(duì)象推送給用戶。該算法需要用戶有歷史行為數(shù)據(jù),隨著用戶的偏好改變其資料模型也會(huì)發(fā)生改變。雖然該算法的推薦結(jié)果比較符合用戶的喜好,但是缺乏新穎度和驚喜度[14]。2.2.2基于協(xié)同過(guò)濾的推薦算法協(xié)同過(guò)濾推薦是推薦系統(tǒng)里面最流行也是應(yīng)用最廣泛的算法,該算法基于系統(tǒng)中其他用戶的歷史行為記錄。該算法首先尋找與用戶歷史行為數(shù)據(jù)相似的其他用戶生成臨近用戶集,然后用加權(quán)平均值方法處理臨近用戶集中的偏好等行為數(shù)據(jù),然后根據(jù)處理過(guò)后的數(shù)據(jù)為目標(biāo)用戶進(jìn)行推送。基于系統(tǒng)過(guò)濾技術(shù)的推薦過(guò)程可以分為三個(gè)階段:數(shù)據(jù)表述;發(fā)現(xiàn)最近鄰居;產(chǎn)生推薦數(shù)據(jù)集[15]。隨著時(shí)代的發(fā)展,站點(diǎn)結(jié)構(gòu)、內(nèi)容的復(fù)雜程度和龐大的用戶群體使協(xié)同算法的一些缺點(diǎn)逐漸暴露:稀疏性較高;擴(kuò)展性較差;精確程度降低。2.2PythonPython是最流行的動(dòng)態(tài)腳本語(yǔ)言之一,運(yùn)行環(huán)境免費(fèi),具有很強(qiáng)的可讀性、學(xué)習(xí)性、開(kāi)源性,它具有比其他語(yǔ)言更有特色語(yǔ)法結(jié)構(gòu)。Python可以使用其它語(yǔ)言的單詞和符號(hào),這樣可以使代碼看起來(lái)更加整潔美觀。Python可以提供高效的、高級(jí)的數(shù)據(jù)結(jié)構(gòu),使用戶能簡(jiǎn)單有效地面向?qū)ο缶幊?。Python解釋器容易擴(kuò)展,可以用C或者C++等語(yǔ)言擴(kuò)展新的功能和數(shù)據(jù)類(lèi)型。Python也可以用于可定制化軟件中的擴(kuò)展程序語(yǔ)言。Python強(qiáng)大的標(biāo)準(zhǔn)庫(kù),提供了適用于許多主要系統(tǒng)平臺(tái)的源碼或者機(jī)器碼。2.3Django框架Django是由Python開(kāi)發(fā)的一個(gè)免費(fèi)的開(kāi)源網(wǎng)站框架,可用于快速搭建高性能的網(wǎng)站。它最初是從新聞網(wǎng)站上發(fā)展起來(lái)的,因此它特別適合CMS一類(lèi)的應(yīng)用[16]。Django的架構(gòu)為MTV(Model-Template-View)模式,Model用于處理數(shù)據(jù)庫(kù);Template是用于顯示處理的模板系統(tǒng);View是用于Model處理的控制部分以及數(shù)據(jù)的加工和模板的調(diào)用等工作。MTV模式和MVC模式的示意圖,分別入圖2-2,2-3所示。圖2-2MTV模型示意圖圖2-3MVC模型示意圖分析圖2-2、2-3可以得知,兩個(gè)模型的大體都是相同的,唯一有區(qū)別的是MVC模式中的控制層在MTV中為模板。Django框架本身就可以處理輸入控制,而且MTV模式的本質(zhì)是各組件之間保持松耦合關(guān)系,所以MTV模式更加契合。2.4MySQLMySQL是一款跨平臺(tái)、高效的、安全的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),適用于PHP、Java、Python等主流編程語(yǔ)言。MySQL提供了大量的數(shù)據(jù)庫(kù)存儲(chǔ)引擎,適用于各種應(yīng)用場(chǎng)合。其安全和靈活的密碼系統(tǒng),在連接服務(wù)器時(shí),密碼傳輸都是采用加密形式的,保證系統(tǒng)的安全性。MySQL也是一款免費(fèi)的產(chǎn)品,再加上其開(kāi)放源碼這一特點(diǎn),所以系統(tǒng)采用MySQL來(lái)對(duì)系統(tǒng)的信息數(shù)據(jù)進(jìn)行存儲(chǔ)。2.5RESTfulAPIRESTfulAPI就是表述性狀態(tài)轉(zhuǎn)移風(fēng)格的接口?,F(xiàn)如今多種多樣的終端(手機(jī)、電腦等)向服務(wù)器發(fā)送請(qǐng)求后,在不適用RESTfulAPI的情況下,為了適應(yīng)前端屏幕的顯示,就需要為各個(gè)終端的數(shù)據(jù)請(qǐng)求重新定義相應(yīng)的返回格式。這樣會(huì)造成很多的數(shù)據(jù)冗余、浪費(fèi)問(wèn)題,所以RESTfulAPI要求前端以一種預(yù)定義的語(yǔ)法格式發(fā)送請(qǐng)求,那么服務(wù)端就只需要定義一個(gè)統(tǒng)一的響應(yīng)接口,不必像之前那樣解析各式各樣的請(qǐng)求[17]。2.6VUEVue是非常流行的Web前端開(kāi)發(fā)技術(shù)主要應(yīng)用于構(gòu)建用戶界面。Vue是自底向上被逐層應(yīng)用的,這也是它與其他框架所不同的。Vue是一個(gè)數(shù)據(jù)驅(qū)動(dòng)的輕量級(jí)組件化開(kāi)發(fā)框架,不僅易于學(xué)習(xí)使用,還方便與第三方庫(kù)或既有項(xiàng)目整合。它的方向就是方便、快捷的利用接口實(shí)現(xiàn)組合的視圖組件以及響應(yīng)數(shù)據(jù)的綁定。3.需求分析本系統(tǒng)的用戶角色分為用戶和管理員。用戶在第一次使用本系統(tǒng)時(shí)需進(jìn)行注冊(cè),注冊(cè)時(shí)需要錄入用戶的基本信息。注冊(cè)成功可以登錄用戶界面,用戶可以對(duì)自己的個(gè)人信息進(jìn)行修改,還可以瀏覽和搜索資源,對(duì)自己感興趣的資源可以進(jìn)行下載和收藏操作。在系統(tǒng)缺乏資源時(shí),用戶還可以選擇優(yōu)質(zhì)的資源進(jìn)行上傳,并為上傳的資源選擇標(biāo)簽,方便系統(tǒng)推薦。用戶在使用時(shí)可以接收到系統(tǒng)根據(jù)其操作行為數(shù)據(jù)推薦的資源,這樣可以最大限度的貼合用戶的興趣度。系統(tǒng)暫時(shí)只設(shè)置一個(gè)管理員,管理員可以對(duì)用戶信息、資源信息、標(biāo)簽信息等進(jìn)行管理。對(duì)用戶信息的管理主要是查看、修改、注銷(xiāo),這樣針對(duì)資源冗余、浪費(fèi)問(wèn)題進(jìn)行解決,可以減輕數(shù)據(jù)庫(kù)存儲(chǔ)的負(fù)擔(dān)。對(duì)資源信息管理主要是查看、修改、刪除,這樣可以對(duì)質(zhì)量比較低的一些資源進(jìn)行修改、刪除,即減輕了數(shù)據(jù)庫(kù)存儲(chǔ)的負(fù)擔(dān)也提高了用戶的使用體驗(yàn)。對(duì)標(biāo)簽信息管理主要是查看、修改、刪除,這樣可以對(duì)一些不符合資源內(nèi)容、特征的標(biāo)簽進(jìn)行修改、刪除,系統(tǒng)就可以更加準(zhǔn)確的為用戶推薦資源,還可以添加一些新的標(biāo)簽,使資源的內(nèi)容、特征被更加準(zhǔn)確的描述。3.1業(yè)務(wù)需求分析因?yàn)樽?cè)用戶和管理員的功能、需求不同,所以各個(gè)模塊也不相同。系統(tǒng)用例圖如圖3-1所示。管理員可以對(duì)用戶、資源和標(biāo)簽等信息進(jìn)行管理操作。用戶主要是維護(hù)自己的信息,對(duì)系統(tǒng)中的資源進(jìn)行瀏覽、下載、收藏等操作,還可以對(duì)系統(tǒng)中沒(méi)有但是優(yōu)質(zhì)的資源進(jìn)行上傳,并為之添加標(biāo)簽。圖3-1系統(tǒng)用例圖3.2數(shù)據(jù)需求分析基于系統(tǒng)需求,設(shè)置管理員、用戶、資源、標(biāo)簽等實(shí)體。在系統(tǒng)注冊(cè)時(shí)用戶需要基本信息,包括姓名、賬號(hào)、密碼、頭像、學(xué)院/部門(mén)、電話等屬性。系統(tǒng)會(huì)把其填入的信息錄入用戶表數(shù)據(jù)庫(kù),并生成注冊(cè)時(shí)間。用戶上傳資源時(shí)需填入資源名稱(chēng)、作者、出版社、資源描述、上傳時(shí)間等屬性。系統(tǒng)錄入資源表數(shù)據(jù)庫(kù)中,形成對(duì)應(yīng)的資源介紹。管理員創(chuàng)建標(biāo)簽時(shí)需要標(biāo)簽名稱(chēng)、關(guān)聯(lián)標(biāo)簽、創(chuàng)建時(shí)間等屬性、錄入標(biāo)簽表數(shù)據(jù)庫(kù)中。管理員可以對(duì)所有的用戶進(jìn)行查看信息、修改信息操作,所以管理員對(duì)用戶是一對(duì)多。管理員可以對(duì)所有的標(biāo)簽進(jìn)行添加、刪除、修改操作,所以管理員對(duì)標(biāo)簽也是一對(duì)多。同理,管理員對(duì)資源也是一對(duì)多。所有用戶都可以對(duì)資源進(jìn)行上傳、瀏覽等操作,所以用戶對(duì)資源是多對(duì)多。多個(gè)資源可以對(duì)應(yīng)多個(gè)標(biāo)簽,因此資源對(duì)標(biāo)簽也是多對(duì)多。3.3系統(tǒng)主要功能通過(guò)對(duì)教師備課工作以及學(xué)習(xí)網(wǎng)站的調(diào)研和分析,了解到了本系統(tǒng)的需求。本系統(tǒng)是基于Django框架的備課資源推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),就用戶來(lái)說(shuō),核心功能的需求有以下幾個(gè)方面。1.用戶管理個(gè)人賬號(hào)的功能有兩個(gè)模塊,分別為登錄與注冊(cè)模塊和個(gè)人中心模塊。用戶第一次使用時(shí),需要注冊(cè)才能進(jìn)行登錄對(duì)系統(tǒng)進(jìn)行使用。之后才可以進(jìn)入個(gè)人中心對(duì)自己的信息進(jìn)行查看和修改操作。2.推薦功能模塊。這個(gè)模塊的主要功能是利用基于標(biāo)簽的推薦算法,系統(tǒng)在用戶選擇資源標(biāo)簽,對(duì)某些資源進(jìn)行瀏覽、下、收藏時(shí)會(huì)進(jìn)行記錄,在知道了用戶跟標(biāo)簽及數(shù)據(jù)庫(kù)中資源的關(guān)系之后,將這三個(gè)字典分化成兩個(gè)字典,將用戶跟標(biāo)簽作為一個(gè),再將標(biāo)簽跟資源作為一個(gè),這樣可以通過(guò)標(biāo)簽去作為用戶跟資源之間的連接,在后臺(tái)對(duì)用戶跟用戶經(jīng)常操作的資源及其標(biāo)簽進(jìn)行分析,計(jì)算用戶對(duì)資源的操作值,并把相匹配的資源推送給用戶,從而達(dá)到個(gè)性化推薦的效果。3.用戶資源管理功能模塊。這個(gè)模塊主要視為用戶提供對(duì)資源的一系列操作,包括瀏覽、搜索、收藏、下載和上傳。4.標(biāo)簽選擇功能模塊。給資源設(shè)置標(biāo)簽,為了方便用戶尋找的同時(shí)也方便系統(tǒng)給資源進(jìn)行定義從而進(jìn)行推薦。因?yàn)楣芾韱T就是管理系統(tǒng)的人員,所以其核心的功能就是管理系統(tǒng),這就需要后臺(tái)管理功能。這個(gè)功能面向也僅面向管理員開(kāi)放,通過(guò)這個(gè)功能,管理員可以對(duì)系統(tǒng)進(jìn)行維護(hù)和管理。其中主要功能有三個(gè)方面:管理用戶、管理資源和管理標(biāo)簽。其功能結(jié)構(gòu)圖如下圖3-2所示。圖3-2系統(tǒng)功能結(jié)構(gòu)圖4.系統(tǒng)設(shè)計(jì)4.1業(yè)務(wù)流程設(shè)計(jì)業(yè)務(wù)流程圖不僅能解釋定制工作在計(jì)算機(jī)系統(tǒng)的本質(zhì),將需求分析得到的結(jié)果展現(xiàn)出來(lái),容易讓開(kāi)發(fā)者理解備課資源推薦工作中的業(yè)務(wù)邏輯。1.用戶登錄模塊用戶登錄界面是只針對(duì)于注冊(cè)用戶的登錄界面,登錄時(shí)系統(tǒng)先驗(yàn)證用戶賬號(hào)、密碼和數(shù)據(jù)庫(kù)賬號(hào)密碼字段對(duì)比,當(dāng)用戶賬號(hào)和密碼匹配且正確時(shí),顯示登陸成功跳轉(zhuǎn)至主頁(yè)面。若驗(yàn)證不匹配顯示賬號(hào)或密碼錯(cuò)誤,用戶登錄基本流程圖如圖4-1所示。圖4-1用戶登錄流程圖2.用戶注冊(cè)功能模塊用戶注冊(cè)模塊是針對(duì)注冊(cè)用戶進(jìn)行注冊(cè)的界面,注冊(cè)時(shí)用戶輸入賬號(hào)密碼,系統(tǒng)通過(guò)和數(shù)據(jù)庫(kù)的字段對(duì)比,當(dāng)字段錯(cuò)誤時(shí)則顯示請(qǐng)重新輸入賬號(hào)密碼。用戶注冊(cè)基本流程如圖4-2所示。圖4-2用戶注冊(cè)流程圖3.管理員用戶管理模塊用戶管理模塊是針對(duì)管理員的模塊,在這個(gè)模塊里管理員有權(quán)對(duì)以及注冊(cè)過(guò)的用戶信息進(jìn)行瀏覽,并對(duì)有誤的用戶信息進(jìn)行修改操作,如果有長(zhǎng)時(shí)間未有操作的用戶可以對(duì)其賬號(hào)進(jìn)行注銷(xiāo)操作。管理員用戶管理流程圖如圖4-3所示。圖4-3用戶管理流程圖4.資源管理模塊根據(jù)備課資源推薦系統(tǒng)的資源模塊調(diào)研結(jié)果分析,備課系統(tǒng)中備課資源由管理員來(lái)管理,擁有相應(yīng)的權(quán)限來(lái)進(jìn)行信息管理操作。添加,修改,查詢和修改信息。資源管理模塊流程圖如圖4-4所示。圖4-4資源管理流程圖4.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)是采用E-R圖(實(shí)體-關(guān)系圖)的數(shù)據(jù)庫(kù)設(shè)計(jì)方式完成數(shù)據(jù)庫(kù)數(shù)據(jù)的設(shè)計(jì),反應(yīng)備課資源推薦系統(tǒng)的概念模型。根據(jù)需求分析的結(jié)果,數(shù)據(jù)庫(kù)設(shè)計(jì)了四個(gè)實(shí)體,分別是:用戶、管理員、資源、標(biāo)簽。實(shí)體與實(shí)體之間的關(guān)系為管理員管理用戶信息,管理員管理資源數(shù)據(jù),管理員管理標(biāo)簽數(shù)據(jù),管理員管理資源標(biāo)簽是否符合特征,用戶查看資源信息,用戶下載資源,用戶上傳資源,按照數(shù)據(jù)庫(kù)需求畫(huà)出E-R圖如圖4-5所示。圖4-5系統(tǒng)E-R圖4.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)采用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)管理,邏輯設(shè)計(jì)階段主要工作是將E-R圖轉(zhuǎn)換為DBMS可使用的數(shù)據(jù)模型,以下數(shù)據(jù)表是根據(jù)系統(tǒng)E-R圖設(shè)計(jì)出來(lái)的。系統(tǒng)中使用到的數(shù)據(jù)表有resource、star_resource、tags、upload、users和admin表。具體展示如下所示。表4-1resource表字段名字段類(lèi)型字段長(zhǎng)度鍵值類(lèi)型描述idint2PK序號(hào)(主鍵)res_namevarchar255資源名稱(chēng)authorvarchar255作者pressvarchar255出版社tagsInt2標(biāo)簽res_descvarchar255資源描述file_pathvarchar255資源路徑build_timetimestampdefaultCURRENT_TIMESTAMP8上傳時(shí)間build_uservarchar255上傳者表4-2star_resource表字段名字段類(lèi)型字段長(zhǎng)度鍵值類(lèi)型描述idint2PK序號(hào)(主鍵)user_uuidVarchar255用戶idfile_idvarchar255資源idstypeint1收藏下載statuInt1已收藏取消收藏表4-3tags表字段名字段類(lèi)型字段長(zhǎng)度鍵值類(lèi)型描述idint2PK序號(hào)(主鍵)namevarchar255標(biāo)簽名稱(chēng)user_uuidvarchar255關(guān)聯(lián)標(biāo)簽statusvarchar255失效正常buile_timetimestampdefaultCURRENT_TIMESTAMP8創(chuàng)建時(shí)間表4-4upload表字段名字段類(lèi)型字段長(zhǎng)度鍵值類(lèi)型描述idint2PK序號(hào)(主鍵)useruuidvarchar255上傳者uuidsuffixvarchar255文件后綴file_pathvarchar255文件超鏈接statusvarchar255失效正常buildtimedatatime8上傳時(shí)間tag_idvarchar255標(biāo)簽id表4-5suers表字段名字段類(lèi)型字段長(zhǎng)度鍵值類(lèi)型描述idint2PK序號(hào)(主鍵)uuidvarchar255唯一idpasswordvarchar255密碼namevarchar255姓名avatarvarchar255頭像departmentvarchar255學(xué)院部門(mén)telvarchar255電話build_timetimestampdefaultCURRENT_TIMESTAMP8注冊(cè)時(shí)間表4-6admin表字段名字段類(lèi)型字段長(zhǎng)度鍵值類(lèi)型描述idint2PK序號(hào)(主鍵)uuidvarchar255唯一idusernamevarchar255管理員名稱(chēng)passwordvarchar255密碼5系統(tǒng)實(shí)現(xiàn)5.1開(kāi)發(fā)環(huán)境的選擇本系統(tǒng)使用Python開(kāi)發(fā),集成開(kāi)發(fā)環(huán)境是PyCharm,選擇Python作為開(kāi)發(fā)語(yǔ)言主要有3個(gè)原因。1.簡(jiǎn)單,速度快。與其他語(yǔ)言相比,例如C、C++、C#、JAVA,用Python開(kāi)發(fā)一個(gè)系統(tǒng)的時(shí)間更少。2.Python的開(kāi)源性。Python是一個(gè)開(kāi)放的項(xiàng)目,由大量的程序員開(kāi)發(fā)。該語(yǔ)言的解釋是免費(fèi)的,并且Python中的包可以直接使用,使用Python編寫(xiě)的程序簡(jiǎn)單易懂。3.Python的跨平臺(tái)性。由Python編寫(xiě)的代碼,不受操作系統(tǒng)類(lèi)型的限制。因此,在Windows下編寫(xiě)的Python代碼,放在Linux環(huán)境下,也可以直接運(yùn)行,這樣做方便開(kāi)發(fā)人員進(jìn)行運(yùn)行與測(cè)試。而PyCharm是Python編程語(yǔ)言的集成開(kāi)發(fā)環(huán)境。它提供了代碼分析工具、圖形調(diào)試器、運(yùn)行單元測(cè)試的工具,并支持Django上的Web開(kāi)發(fā)。PyCharm是JetBrains公司基于IntelliJIDEA開(kāi)發(fā)的PyCharm有以下優(yōu)點(diǎn)。1.PyCharm中可以進(jìn)行靜態(tài)代碼分析,并且可以突出顯示編程中的語(yǔ)法錯(cuò)誤。2.提供項(xiàng)目和源代碼導(dǎo)航。在PyCharm中,左側(cè)為導(dǎo)航欄,可以顯示項(xiàng)目的文件結(jié)構(gòu),便于開(kāi)發(fā)人員快速找到自己想要的文件。3.PyCharm中有內(nèi)置調(diào)適器。對(duì)于編程人員來(lái)說(shuō),邊寫(xiě)邊調(diào)試程序非常重要,可以讓編程人員及時(shí)的發(fā)現(xiàn)錯(cuò)誤,及時(shí)改正。4.PyCharm中自帶網(wǎng)站開(kāi)發(fā)框架。例如,Django框架和Flask框架。5.2基本功能模塊的實(shí)現(xiàn)5.2.1登錄模塊功能描述:登錄模塊中用戶/管理員輸入賬號(hào)密碼。后臺(tái)獲取用戶輸入的內(nèi)容,然后使用加密算法把獲取的內(nèi)容轉(zhuǎn)換成密鑰,和數(shù)據(jù)庫(kù)內(nèi)容比對(duì),核對(duì)成功即登錄成功,失敗則跳回重試。圖5-1登錄界面主要代碼如下:defpost(self,request):user_name=self.get_json_param('username','')password=self.get_json_param('password','')deep_password=DeepEncrypPassword(password)#加密密碼users=self.get_user_of_login(user_name,deep_password)print(users)ifusers:#ifhavauser,redisset'user_uuid'cache.set('user_uuid',users[0]['uuid'],None)returnHttpResponse(ReturnCode(100,users[0]))5.2.2推薦資源模塊功能描述:利用基于標(biāo)簽的推薦算法,系統(tǒng)在用戶選擇資源標(biāo)簽,對(duì)某些資源進(jìn)行瀏覽、下、收藏時(shí)會(huì)進(jìn)行記錄,在知道了用戶跟標(biāo)簽及數(shù)據(jù)庫(kù)中資源的關(guān)系之后,將這三個(gè)字典分化成兩個(gè)字典,將用戶跟標(biāo)簽作為一個(gè),再將標(biāo)簽跟資源作為一個(gè),這樣可以通過(guò)標(biāo)簽去作為用戶跟資源之間的連接,在后臺(tái)對(duì)用戶跟用戶經(jīng)常操作的資源及其標(biāo)簽進(jìn)行分析,計(jì)算用戶對(duì)資源的操作值,并把相應(yīng)的資源推送給用戶,從而達(dá)到個(gè)性化推薦的效果。圖5-2推薦資源頁(yè)面主要代碼如下:defRecommend_update(user,K):

recommend_items=dict()

fortag,wutinuser_tags[user].items():

foritem,wtiintag_items[tag].items():

ifitemnotinrecommend_items:

recommend_items[item]=wut*wti/log(1+len(tag_user[tag]))#計(jì)算用戶對(duì)物品興趣度

else:

recommend_items[item]+=wut*wti/log(1+len(tag_user[tag]))

rec=sorted(recommend_items.items(),key=lambdax:x[1],reverse=True)#將推薦資源按興趣度排名

print("用戶對(duì)資源興趣度",rec)

resource=[]

foriinrange(K):

resource.append(rec[i][0])

resource="/".join(music)

print("為用戶推薦資源:",resource)

returnresource5.2.3上傳模塊功能描述:上傳功能,是先點(diǎn)擊上傳將文件傳輸?shù)降谌竭M(jìn)行存儲(chǔ),第三方會(huì)返回一個(gè)oss鏈接,再將oss以及資源名稱(chēng)等信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。使用第三方存儲(chǔ)的技術(shù),會(huì)極大的減少服務(wù)器的存儲(chǔ)壓力。圖5-3資源上傳頁(yè)面實(shí)現(xiàn)代碼如下:classOssHandler(BaseHandler):defpost(self,requests):oss_name=create_uuid('oss',8)file=requests.FILES.get("file",None)str_file=str(file)suffix=str_file.split('.')[-1]try:repsonse=client.put_object(Bucket=Bucket_Name,Body=file,Key=oss_name+'.'+suffix)oss_url=scheme+'://'+Bucket_Name+'.cos.'+region+'./'+oss_name+'.'+suffixreturnHttpResponse(ReturnCode(100,{"oss_url":oss_url}))exceptExceptionase:logging.error(e)returnHttpResponse(400)5.2.4標(biāo)簽?zāi)K功能描述:利用標(biāo)簽對(duì)資源的主要內(nèi)容和特征進(jìn)行定義,方便用戶快速的尋找到需要的資源,通知也方便系統(tǒng)利用推薦算法對(duì)用戶進(jìn)行資源的推薦,在標(biāo)簽?zāi)K中。主要提供搜索、添加、修改、刪除、選擇標(biāo)簽的功能。圖5-4標(biāo)簽功能頁(yè)面主要代碼如下:defget_tags(self,name,limit,offset):_where="""where='{}'""".format(name)_limit="limit{}offset{}".format(limit,offset)total_count="""selectcount(*)fromtagst1joinuserst2ont1.user_uuid=t2.uuid"""sql_str="""SELECTt1.id,,DATE_FORMAT(t1.build_time,'%Y-%m%-%d%H:%i:%S')asbuild_time,t1.status,t1.user_uuid,t2.`name`asuser_namefromtagst1joinuserst2ont1.user_uuid=t2.uuid"""ifname:sql_str=sql_str+_wheretotal_count=total_count+_wherecount=self.Query_Safe(total_count)total=count[0]['count(*)']ifcountelse0result=self.Query_Safe(sql_str+_limit)returnresult,totaldefget(self,request):name=request.GET.get('name')pageIndex=request.GET.get('pageIndex','1')pageSize=request.GET.get('pageSize','10')page,limit,offset=self.get_page_limit_offset(pageIndex,pageSize)tags_list,total=self.get_tags(name,limit,offset)returnHttpResponse(ReturnCode(100,{"tags_list":tags_list,"pageTotal":total}))5.2.5后臺(tái)功能模塊功能描述:后臺(tái)管理模塊只允許管理員登錄,主要包含4個(gè)功能,可進(jìn)行用戶管理、標(biāo)簽管理、資源管理。1.用戶管理圖5-5用戶管理頁(yè)面主要代碼如下:(1)查看用戶:前端發(fā)送get接口請(qǐng)求時(shí)攜帶需要的參數(shù)('department','name'),接口根據(jù)傳遞的參數(shù)進(jìn)行數(shù)據(jù)庫(kù)查詢,之后返回給前端進(jìn)行渲染defget(self,request):department=request.GET.get('department')name=request.GET.get('name')pageIndex=request.GET.get('pageIndex','1')pageSize=request.GET.get('pageSize','10')page,limit,offset=self.get_page_limit_offset(pageIndex,pageSize)user_list,total=self.get_users(department,name,limit,offset)returnHttpResponse(ReturnCode(100,{"user_list":user_list,"pageTotal":total}))(2)修改用戶:defput(self,request):uuid=request.GET.get('uuid')name=request.GET.get('name')department=request.GET.get('department')result=self.update_user(uuid,name,department)ifnotresult:returnHttpResponse(ReturnCode(400,'修改失敗'))returnHttpResponse(ReturnCode(100,'修改成功'))(3)刪除用戶:defdelete(self,request):uuid=request.GET.get('uuid')result=self.delete_user(uuid)ifnotresult:returnHttpResponse(ReturnCode(400,'刪除失敗'))returnHttpResponse(ReturnCode(100,'修改成功'))2.標(biāo)簽管理圖5-6標(biāo)簽管理頁(yè)面主要代碼如下:獲取標(biāo)簽:defget(self,request):name=request.GET.get('name')pageIndex=request.GET.get('pageIndex','1')pageSize=request.GET.get('pageSize','10')page,limit,offset=self.get_page_limit_offset(pageIndex,pageSize)tags_list,total=self.get_tags(name,limit,offset)returnHttpResponse(ReturnCode(100,{"tags_list":tags_list,"pageTotal":total}))新增標(biāo)簽:defpost(self,request):tag_name=self.get_json_param('tag_name','')result=self.add_tag(tag_name)returnHttpResponse(ReturnCode(100))3.資源管理圖5-7資源管理頁(yè)面主要代碼如下:defget_resource(self,limit,offset,keys):tags=f"andt1.res_name='{keys}'"ifkeyselse""_where="where1+1"+tags+"limit{}offset{}".format(limit,offset)total_count="""selectcount(1)fromresourcet1joinuserst2ont1.build_user=t2.uuidjointagst3ont1.tags=t3.id""".format(keys)sql_str="""selectt1.id,astag_name,t1.res_name,t1.author,t1.press,t1.tagsastag_id,t1.res_desc,t1.file_path,fromresourcet1joinuserst2ont1.build_user=t2.uuidjointagst3ont1.tags=t3.id""".format(limit,offset)result=self.Query_Safe(sql_str+_where)count=self.Query_Safe(total_count+_where)total=count[0]['count(1)']ifcountelse0returnresult,total6系統(tǒng)測(cè)試6.1測(cè)試目的系統(tǒng)測(cè)試的目的是為了測(cè)試系統(tǒng)在測(cè)試過(guò)程中的功能能否正常使用的檢測(cè),在備課資源推薦系統(tǒng)開(kāi)發(fā)過(guò)程中無(wú)法保證代碼的正確性,無(wú)法避免的一些語(yǔ)法和邏輯錯(cuò)誤,所以產(chǎn)生多個(gè)bug,模塊整合在一起后會(huì)相互影響,導(dǎo)致發(fā)生運(yùn)行錯(cuò)誤。6.2系統(tǒng)登錄功能測(cè)試如需使用系統(tǒng),登錄是進(jìn)入系統(tǒng)的第一步,登錄分為管理員和用戶登錄,管理員的登錄默認(rèn)賬號(hào)為admin密碼為123456。下面是對(duì)用戶登錄過(guò)程中出現(xiàn)的情形逐一測(cè)試。賬號(hào)2017215200已結(jié)錄入數(shù)據(jù)庫(kù)默認(rèn)為注冊(cè)成功。登錄功能測(cè)試如表6-1所示:表6-1用戶登錄功能測(cè)試編號(hào)情形輸入預(yù)想結(jié)果實(shí)際結(jié)果NO1正確的用戶名和密碼賬號(hào):2017215200密碼:2017215200登錄成功登錄成功NO2賬號(hào)為空賬號(hào):null密碼:2017215200登錄失敗登錄失敗,顯示“請(qǐng)輸入賬號(hào)”NO3賬號(hào)不為空,密碼為空賬號(hào):2017215200密碼:null登錄失敗登錄失敗,顯示“請(qǐng)輸入密碼”NO4正確的賬號(hào)和錯(cuò)誤密碼賬號(hào):2017215200密碼:654321登錄失敗登錄失敗,顯示“usernameorpasswordincorrect”NO5賬號(hào)未注冊(cè)賬號(hào):2222222密碼:123456登錄失敗登錄失敗,顯示“usernameorpasswordincorrect”6.3系統(tǒng)用戶功能界面測(cè)試用戶登錄系統(tǒng)后,相應(yīng)的功能測(cè)試如表6-2所示:表6-2用戶功能測(cè)試編號(hào)測(cè)試功能測(cè)試操作預(yù)想結(jié)果結(jié)論NO1用戶登錄正確的用戶名和密碼進(jìn)入系統(tǒng)預(yù)想準(zhǔn)確NO2查看資源點(diǎn)擊查看資源查看推薦資源預(yù)想準(zhǔn)確NO3修改個(gè)人資料點(diǎn)擊頭像、修改資料修改個(gè)人資料、密碼等預(yù)想準(zhǔn)確NO4下載資源點(diǎn)擊我的下載查看到下載記錄預(yù)想準(zhǔn)確NO5上傳資源點(diǎn)擊上傳對(duì)資源進(jìn)行上傳預(yù)想準(zhǔn)確NO6退出登錄點(diǎn)擊頭像、退出登錄退出登錄預(yù)想精準(zhǔn)6.4系統(tǒng)管理員界面測(cè)試管理員登錄系統(tǒng)后,相應(yīng)的功能測(cè)試如表6-3所示:表6-3管理員功能測(cè)試編號(hào)測(cè)試功能測(cè)試操作預(yù)想結(jié)果結(jié)論NO1管理員登錄正確的賬號(hào)和密碼進(jìn)入系統(tǒng)預(yù)想準(zhǔn)確NO2查看資源點(diǎn)擊查看資源查看推薦資

溫馨提示

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

評(píng)論

0/150

提交評(píng)論