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