袁 濤
(西北民族大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,甘肅 蘭州 730030)
隨著社會(huì)的快速發(fā)展,人們對(duì)于學(xué)歷的追求也在不斷地提高。全國(guó)的考研人數(shù)不斷地增加,增長(zhǎng)速度極其驚人。通過統(tǒng)計(jì)發(fā)現(xiàn),雖然每年錄取人數(shù)也在增加,但是被錄取的比率還是很低。為了能夠更好地幫助準(zhǔn)備考研的同學(xué),在考研的過程中盡可能提供有幫助的信息,本研究研發(fā)一種針對(duì)有考研需求的學(xué)生的共享系統(tǒng),根據(jù)對(duì)周圍考研成功或者是準(zhǔn)備考研的人的調(diào)查情況來開發(fā)。
目前,已經(jīng)使用的與考研有關(guān)的系統(tǒng)或者APP,主要特點(diǎn)包括:(1)設(shè)置了考研交流論壇。(2)收集了最基礎(chǔ)的考研學(xué)習(xí)資料。(3)整合了各大目標(biāo)院校的相關(guān)資料,例如:優(yōu)勢(shì)科目、易考科目、報(bào)錄比等。(4)銷售考研課程。
通過走訪調(diào)查西北民族大學(xué)以及周邊院校學(xué)生發(fā)現(xiàn),大多數(shù)人存在這些困難,比如:(1)有關(guān)考研的宣傳力度不夠,學(xué)生想考研卻不知從何入手,不知道考研整體流程以及整體的考研計(jì)劃。(2)有些同學(xué)找不到本校共同考研的研友。(3)對(duì)于目標(biāo)院校的了解不夠或者根本不知道如何選擇心儀學(xué)校。(4)一些已經(jīng)考上研究生的學(xué)長(zhǎng)學(xué)姐分享考研經(jīng)驗(yàn)時(shí),絕大多數(shù)想考研的同學(xué)獲取不到或者根本無法找到本校已經(jīng)考上研究生的學(xué)長(zhǎng)、學(xué)姐的聯(lián)系方式,無法獲得最好的學(xué)習(xí)經(jīng)驗(yàn)以及報(bào)考技巧。
對(duì)于這些情況,本文研發(fā)一個(gè)系統(tǒng),解決這些困難,系統(tǒng)可以做到以下幾點(diǎn):(1)在本校找到合適的研友,共同奮斗。(2)每當(dāng)已經(jīng)成功的學(xué)長(zhǎng)學(xué)姐分享考研經(jīng)驗(yàn)時(shí),此系統(tǒng)提前通知。(3)已經(jīng)成功考上研究生的同學(xué)可以在本系統(tǒng)上銷售考研筆記以及書籍,并且盡可能地解答要考研同學(xué)的疑問。(4)與其他考研APP或者系統(tǒng)一樣,提供考研目標(biāo)院校資料。(5)在交流模塊中,同學(xué)可以把考研時(shí)的疑問發(fā)表在上面,共同探討。
考研的人數(shù)不斷增長(zhǎng),被調(diào)查的人中很大一部分希望有這樣一個(gè)平臺(tái)。基于手機(jī)以及電腦的普及,本文所設(shè)計(jì)與實(shí)現(xiàn)的系統(tǒng)只要是有網(wǎng)絡(luò)、有手機(jī)或者電腦、平板電腦不需要下載,只要用網(wǎng)址即可進(jìn)入,既減少了對(duì)電腦或者手機(jī)存儲(chǔ)容量的消耗,又方便。
Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,相比于其他語(yǔ)言,具有特色的語(yǔ)法結(jié)構(gòu),被稱為“入門語(yǔ)音”。
超文本標(biāo)記語(yǔ)言(Hypertext Marked Language,HTML)不是一種編程語(yǔ)言,而是一種標(biāo)識(shí)性語(yǔ)言,用于創(chuàng)建網(wǎng)頁(yè),使用標(biāo)簽來描述網(wǎng)頁(yè)。
Bootstrap是一種用于快速開發(fā)Web前端頁(yè)面的框架,它是基于HTML,CSS,JavavScript的一種開源框架,非常容易上手,采用了響應(yīng)式設(shè)計(jì),很大程度上減少了前端工程師的工作量。
Flask是使用Python編寫的Web微框架。Flask主要依賴兩種工具,一個(gè)是Web服務(wù)器網(wǎng)關(guān)接口(Web Server Gateway Interface,WSGI)工具集—Werkzeug,另一個(gè)是Jinja2模板引擎,不需要關(guān)心底層的請(qǐng)求響應(yīng)處理,能更方便、高效地編寫Web程序。
2.1.1 用戶的需求
該系統(tǒng)需要用戶通過瀏覽器才能進(jìn)入并使用系統(tǒng)內(nèi)的資源,具體的用戶需求如下:
(1)用戶的登錄。用戶在進(jìn)入系統(tǒng)時(shí)只能看到系統(tǒng)首頁(yè),要想使用其中的功能就必須登錄。如果用戶沒有注冊(cè),點(diǎn)擊注冊(cè)在指定位置填寫好信息后點(diǎn)擊“立即注冊(cè)”,會(huì)有彈框(使用CSS,HTML,JS封裝好的函數(shù),使用Ajax以及JS對(duì)函數(shù)的調(diào)用)告知注冊(cè)的結(jié)果是否成功,再在指定地點(diǎn)填寫好相關(guān)的信息點(diǎn)擊立即登錄,也會(huì)有彈框彈出告知結(jié)果。
(2)用戶的權(quán)限。在本系統(tǒng)中用戶只能操作權(quán)限范圍之內(nèi)功能,例如:完善個(gè)人信息、上傳資料、交流、查找研友等。
(3)個(gè)人信息的完善。用戶只需要點(diǎn)擊頭像即可進(jìn)入個(gè)人信息界面,該界面中用戶可以更換頭像、填寫個(gè)性簽名、修改密碼、昵稱、性別等,填寫完后點(diǎn)擊“立即提交”同樣有彈框告知結(jié)果。
2.1.2 管理員的需求
管理員同樣需要通過瀏覽器進(jìn)入系統(tǒng),點(diǎn)擊登錄即可。登錄后系統(tǒng)會(huì)自動(dòng)對(duì)登錄者的郵箱號(hào)、密碼與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比較。如果是管理員,那么在此系統(tǒng)中由于權(quán)限的不一樣,普通用戶能進(jìn)行的操作管理員也可以進(jìn)行操作,除此之外,管理員還可以提升普通用戶為管理員、修改普通用戶的信息、刪除普通用戶、對(duì)普通用戶上傳的資料或者言論進(jìn)行審核等。在審核過程中當(dāng)用戶出現(xiàn)多次惡意的言論或者資料時(shí),管理員可以提出警告,如果不理會(huì)可以直接刪除該用戶。
2.2.1 系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)分為兩部分,一部分是通過Flask框架對(duì)前端、后端進(jìn)行設(shè)計(jì),包含:資料模塊、查找研友模塊、交流模塊等功能,將使用Flask中的Blueprint組織管理各個(gè)模塊的內(nèi)容。另一部分是數(shù)據(jù)的處理,包括數(shù)據(jù)的處理、分析、傳輸?shù)裙δ堋?/p>
2.2.2 模塊設(shè)計(jì)
(1)資料模塊:匯總所有上傳的資料,考研成功的人在此系統(tǒng)售賣的資料都存放在該模塊中,上傳的資料都需要經(jīng)過審核,資料的形式?jīng)]有限制,可以是圖片、文件、視頻等。所有的資料按照內(nèi)容進(jìn)行分類存放。上傳時(shí)會(huì)采用UEditor(由百度Web前端研發(fā)部開發(fā)的開源富文本編譯器),上傳的過程中對(duì)各種不同形式的資料可以提供更加方便的操作。
(2)查找研友模塊:把所有準(zhǔn)備考研的同學(xué)歸在此模塊下,有共同心儀學(xué)校的或者是處于同一所學(xué)校的只要在此系統(tǒng)中注冊(cè)過,都可以一起奮斗、共同前進(jìn)。當(dāng)用戶點(diǎn)擊搜索時(shí),F(xiàn)lask APP收到請(qǐng)求,會(huì)通過相應(yīng)的函數(shù)從數(shù)據(jù)庫(kù)中查找相關(guān)的數(shù)據(jù)返回給前端再渲染到Web頁(yè)面中。
(3)交流模塊:同資料模塊一樣,所發(fā)表的任何言論都需要經(jīng)過審核,并且也是根據(jù)內(nèi)容進(jìn)行分類處理。可以是圖片、視頻、文件等形式發(fā)表言論。因交流會(huì)涉及不同形式的言論,所以也會(huì)采用UEditor獲取幫助。評(píng)論發(fā)表成功后Ajax和JS使頁(yè)面自動(dòng)刷新,用戶可以第一時(shí)間看到,不需要手動(dòng)刷新觀看。
(4)登錄/注冊(cè):只需要按照提示在相關(guān)的地方填寫相關(guān)的信息,按照提示即可完成登錄或者注冊(cè),在登錄過程中如果忘記密碼,可以通過點(diǎn)擊相應(yīng)的鏈接,即可重新填寫密碼。為了保證用戶的信息安全,使用session對(duì)象添加cookie,數(shù)據(jù)會(huì)使用密鑰對(duì)信息進(jìn)行加密,加密后的信息會(huì)存儲(chǔ)在名為session的cookie里,即使能看到相關(guān)信息,如果沒有密鑰無法對(duì)session cookie中的值進(jìn)行修改。
2.2.3 Flask框架
在Flask框架中,前端框架是由Bootstrap框架和jinja模板語(yǔ)言相結(jié)合展示出頁(yè)面,當(dāng)用戶點(diǎn)擊相關(guān)功能時(shí),前端向Flask APP發(fā)送相應(yīng)的請(qǐng)求,F(xiàn)lask APP從后端獲取到數(shù)據(jù),通過路由(route)把數(shù)據(jù)傳送給前端,前端再把數(shù)據(jù)渲染到頁(yè)面中。然而,F(xiàn)lask APP在接到前端發(fā)送的請(qǐng)求時(shí),會(huì)對(duì)該請(qǐng)求進(jìn)行分析,然后由特定的函數(shù)來執(zhí)行這次請(qǐng)求操作。
2.2.4 后數(shù)據(jù)處理
該系統(tǒng)是將數(shù)據(jù)處理部分和Flask框架分開,數(shù)據(jù)處理和Flask框架并行處理,使系統(tǒng)的穩(wěn)定性得到保證。如果數(shù)據(jù)處理出現(xiàn)問題,F(xiàn)lask APP運(yùn)行不會(huì)受到影響,同時(shí)該系統(tǒng)的運(yùn)行速度也會(huì)有所提高。
此系統(tǒng)采用輕量級(jí)的Web應(yīng)用框架Flask和B/S模式開發(fā),整個(gè)系統(tǒng)主要分為3大模塊,各個(gè)模塊的操作盡可能簡(jiǎn)潔,讓使用該系統(tǒng)的用戶更好地掌握需要的信息,在考研之路上盡可能提供更大的幫助。