版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
zz本科畢業(yè)設(shè)計(jì)(論文)本科畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與開發(fā)學(xué)號:120學(xué)生姓名:侃指導(dǎo)教師:威所在學(xué)院:計(jì)算機(jī)科學(xué)技術(shù)學(xué)院所學(xué)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)(師)2016年6月隨著科技的進(jìn)步和信息技術(shù)的開發(fā),已經(jīng)有越來越多的應(yīng)用從原有的服務(wù)器 /客戶端架構(gòu)轉(zhuǎn)變成了服務(wù)器/瀏覽器的架構(gòu)。對于普通用戶而言,不需要使用特定的客戶端,而只需要使用所有系統(tǒng)都置的網(wǎng)頁瀏覽器就可以完成對服務(wù)器端的控制和查詢,簡化了操作,也便了在不同機(jī)器上使用。畢業(yè)設(shè)計(jì)的管理是高校管理工作中的一項(xiàng)重要容。目前,很多高校的畢業(yè)設(shè)計(jì)管理還存在一些問題。 采用Pythonweb輕量級框架可以快速敏捷開發(fā),同時(shí)降低了開發(fā)及維護(hù)的成本及難度。本課題的目標(biāo)是希望能夠簡化高校畢業(yè)設(shè)計(jì)管理流程,為學(xué)生畢業(yè)設(shè)計(jì)選題,論文上交,老師和學(xué)生的溝通,建立便捷高效規(guī)的通道。本課題采用 B/S的體系架構(gòu),服務(wù)端采用了Python流行的MVCWeb框架Django,前端使用Bootstrap響應(yīng)式框架,以及Jquery。服務(wù)端和客戶端之間通訊運(yùn)用http請求技術(shù),數(shù)據(jù)交互采用json規(guī)。關(guān)鍵詞:Python;Django;畢業(yè)設(shè)計(jì);管理系統(tǒng)AbstractWiththeadvancement oftechnology andthedevelopment ofinformation,anincreasingnumberofapplicationshavechangedfromtheC/StotheB/Sstructure.Forordinarycustomers,theydon'tneedtouseaspecificclientasthewebbrowserwhichallthesystemsarebuilt-inwebbrowser soastocompletethequeryandcontrolforserverport.Comparing theformer,it'snotonlysimplified operation, butalsoconvenient operation in different machines.Graducate designmanagement isoneoftheseriousuniversitiesmanagement. Currently,therearestillsomeproblemsofthegraduction designmanagement inmanycolleges and universities.Usingthe python web lightweightframeworkcan speed development.Moreover,itcan also reducetheprimecostanddifficultyofexploitingorservicing.Thegoalofthistopicistostreamlineworkflowofuniversitygraduationproject,establishaconvenientandefficientpassagewayforselectingthethemeofgraduationproject,handinginthepapers,andcommunicatingbetweenteachers andstudents. ThetopicadoptsB/Sarchitecture. TheserverusesthePythonwhichpopularwithitsMVCWebframework,Django.Thefore-endusestheBootstrapResporsiveframe aswellasJaquery.Theclient-servercommunicationsusesHTTPrequesttechnology,ThedatatransitionusesthestandardofJSON.Keywords:Python;Django;GraductionDesign;ManagementSystemTOC\o"1-5"\h\z摘要 1\o"CurrentDocument"Abstract 2\o"CurrentDocument"第1章緒論 5\o"CurrentDocument"1.1選題背景 5\o"CurrentDocument"1.2選題來源 5\o"CurrentDocument"1.3選題意義 51.4國外發(fā)展動(dòng)態(tài) 5\o"CurrentDocument"1.5初步設(shè)想 6\o"CurrentDocument"第2章案論證 7\o"CurrentDocument"經(jīng)濟(jì)可行性分析 7\o"CurrentDocument"技術(shù)可行性分析 7\o"CurrentDocument"操作可行性分析 7\o"CurrentDocument"2.4法律可行性分析 8\o"CurrentDocument"2.5相關(guān)技術(shù)簡介 8\o"CurrentDocument"2.6案選擇 9\o"CurrentDocument"第3章需求分析 11\o"CurrentDocument"總體目標(biāo) 11\o"CurrentDocument"3.2系統(tǒng)功能分析 12\o"CurrentDocument"3.3性能需求 15\o"CurrentDocument"運(yùn)行需求 16\o"CurrentDocument"第4章設(shè)計(jì)與實(shí)現(xiàn) 17\o"CurrentDocument"概要設(shè)計(jì) 17系統(tǒng)總體功能 17模塊功能 18\o"CurrentDocument"4.2數(shù)據(jù)庫設(shè)計(jì) 18\o"CurrentDocument"4.3功能模塊實(shí)現(xiàn) 274.3.1 賬號管理 274.3.2管理員信息管理 38論文配置管理 44論文選題 45\o"CurrentDocument"第5章系統(tǒng)測試 48\o"CurrentDocument"單元測試 48\o"CurrentDocument"5.2黑盒測試 48\o"CurrentDocument"5.3系統(tǒng)測試 48\o"CurrentDocument"5.4安全性測試 50\o"CurrentDocument"5.5界面測試 50結(jié)論 51致 52\o"CurrentDocument"參考文獻(xiàn) 53附錄 54第1章緒論1.1選題背景目前,高校部管理系統(tǒng)已經(jīng)日趨完善,基本可以適用大多數(shù)的場景。但是由于其采用的技術(shù)和架構(gòu)過于舊,導(dǎo)致使用效果不佳,性能無法滿足新的需求。隨著Web2.0的快速發(fā)展,采用一些輕量級的Web框架,可以快速開發(fā)新的系統(tǒng),同時(shí)重構(gòu)原有項(xiàng)目,對于校管理系統(tǒng)尤為適用。1.2選題來源畢業(yè)設(shè)計(jì)的管理是高校管理工作中的一項(xiàng)重要容。 目前,很多高校的畢業(yè)設(shè)計(jì)管理還存在一些問題。例如:根據(jù)教學(xué)要求,通常學(xué)生在大學(xué)最后一年需要在外地進(jìn)行實(shí)習(xí),而此時(shí)又面臨著畢業(yè)設(shè)計(jì)選題問題;另外,畢業(yè)設(shè)計(jì)完成時(shí),論文的上交也存在困難。同時(shí),在做畢業(yè)設(shè)計(jì)的過程中,由于學(xué)生在外,指導(dǎo)老師對學(xué)生的指導(dǎo)和交流也會(huì)遇到一些麻煩。因此迫切解決以上這些問題 ,使高校畢業(yè)設(shè)計(jì)管理效率更高,使其更加規(guī)化,科學(xué)化和信息化,滿足教學(xué)和管理要求。1.3選題意義本科畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與開發(fā)能夠彌補(bǔ)目前高校部管理系統(tǒng)的空白,更好的服務(wù)于畢業(yè)生?因此本科畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與開發(fā),對高校的信息管理和快速發(fā)展具有重要意義。1.4國外發(fā)展動(dòng)態(tài)隨著互聯(lián)網(wǎng)的不斷發(fā)展,已經(jīng)有越來越多的應(yīng)用從原有的服務(wù)器/客戶端架構(gòu)轉(zhuǎn)變成了服務(wù)器/瀏覽器的架構(gòu)。這樣,對于普通用戶而言,不需要使用特定的客戶端,而只需要使用所有,系統(tǒng)都置的網(wǎng)頁瀏覽器就可以完成對服務(wù)器端的控制和查詢,簡化了操作,也便了在不同機(jī)器上使用。正因如此, web應(yīng)用的開發(fā)正在被越來越多的人們所關(guān)注。Web應(yīng)用框架就是在這種情況下出現(xiàn)的,它是一種用來協(xié)助開發(fā)動(dòng)態(tài)、web應(yīng)用和服務(wù)的軟件框架。開發(fā)它的目的在于抽象出 web開發(fā)中常用到代碼段,操作等共有部分,減少web應(yīng)用開發(fā)的工作量。Django是使用Python開發(fā)的Rails式的Web框架,它是一套開源的框架,雖然現(xiàn)在的版本號還是1.9,但是其上已經(jīng)有多成功的應(yīng)用1.5初步設(shè)想Django是一種Rails框架,它很好的支持了敏捷開發(fā)。 Django使用Python開發(fā),而Python語言置了單元測試的庫,這樣在編寫網(wǎng)頁的時(shí)候,可以便的使用置庫來測試的控制邏輯,為高質(zhì)量軟件打下了良好的基礎(chǔ)。 Python是一種解釋型的語言,對代碼的更改可以實(shí)時(shí)顯現(xiàn),所以在某種程度上符合了持續(xù)集成的要求。而Python置單元測試的庫也為重構(gòu)的正確性提供了保證。另外,對于一些通用的Web應(yīng)用,如用戶登錄,用戶登出,更改密碼,顯示數(shù)據(jù)信息等,Django都提供了置的模塊以供直接調(diào)用,加快了開發(fā)的進(jìn)度,也降低了開發(fā)的難度及出錯(cuò)的可能性。而MVC分離的架構(gòu),可以很好的用于任務(wù)的分配,也保證了對于控制邏輯代碼的更改不會(huì)對上層用戶界面及下層數(shù)據(jù)庫接口造成太大的影響, 降低了開發(fā)及維護(hù)的成本及難度。本系統(tǒng)采用Pycharm為開發(fā)平臺(tái),輔之以Sublime編輯器,數(shù)據(jù)庫采用MySQL,采用測試驅(qū)動(dòng)開發(fā),以為一個(gè)開發(fā)期,開源到Github上,拓展Django自帶的用戶登錄認(rèn)證系統(tǒng),結(jié)合Bootstrap,Jquery進(jìn)行網(wǎng)頁的編寫。預(yù)計(jì)完成以下功能:學(xué)院信息管理、專業(yè)信息管理、班級信息管理、學(xué)生信息管理、教師信息管理、課程信息管理、選課信息管理、成績信息管理、新聞信息管理。超級管理員平臺(tái),學(xué)院信息管理, 專業(yè)信息管理,學(xué)院管理員管理學(xué)院管理員平臺(tái),學(xué)院教師管理, 學(xué)院學(xué)生管理, 論文配置管理,論文選題管理,個(gè)人資料管理學(xué)院教師平臺(tái), 論文配置管理,論文選題管理,個(gè)人資料管理,上傳作品管理學(xué)院學(xué)生平臺(tái), 論文選題,上傳作品,個(gè)人資料管理賬戶管理,包括登錄,登出,忘記密碼,重置密碼,修改密碼。第2章案論證本章對本科畢業(yè)設(shè)計(jì)管理系統(tǒng)有效的可行性分析??尚行苑治鍪墙?jīng)常采用的一種工程項(xiàng)目是否可行的技術(shù)。主要是在系統(tǒng)的設(shè)計(jì)思想上,對系統(tǒng)的研發(fā)是否具備可行性和可能性進(jìn)行一些研究和思考,主要會(huì)從費(fèi)用、技術(shù)等面來進(jìn)行分析和研究,以減少項(xiàng)目開發(fā)風(fēng)險(xiǎn),避免人力、物力和財(cái)力的浪費(fèi)。下文將從經(jīng)濟(jì)、技術(shù)、操作、法律等四個(gè)可行性對本課題的提出的案進(jìn)行論證。2.1經(jīng)濟(jì)可行性分析關(guān)于各種軟件和硬件、輔助設(shè)備的調(diào)試和配置,以及維護(hù)系統(tǒng)等這些費(fèi)用都可以忽略不計(jì),因?yàn)檫@些設(shè)備,在我們?nèi)粘W(xué)習(xí)生活中都是必備的。本課題是在學(xué)習(xí)與實(shí)踐基礎(chǔ)上研究開發(fā)的,Pycharm、Submine都是可以免費(fèi)下載使用的,有關(guān)學(xué)習(xí)資料可以在學(xué)校的圖書館或者電子閱覽室進(jìn)行查詢、學(xué)習(xí),并不涉及其他作者的專利和的購買費(fèi)用。因此,從經(jīng)濟(jì)可行性上來分析,本科畢業(yè)設(shè)計(jì)管理系統(tǒng)是可以實(shí)現(xiàn)的。2.2技術(shù)可行性分析本系統(tǒng)使用Python進(jìn)行開發(fā),Django框架已經(jīng)是比較成熟的產(chǎn)品,YouTuBe,Quora,DICUSS均選擇它作為開發(fā)平臺(tái)。因此,在技術(shù)上Django可以快速開發(fā)迭代。本系統(tǒng)采用B/S技術(shù)模式,掌握MVC架構(gòu)的三層設(shè)計(jì)思想,選擇可行的案、合理安排開發(fā)過程,用Bootstrap做CSS框架加快開發(fā),并采用已有的HTML優(yōu)秀模板作為與用戶交互的界面,同時(shí)實(shí)現(xiàn)用戶登錄系統(tǒng)的身份驗(yàn)證,以及教師,學(xué)生信息進(jìn)行增加、刪除、修改等操作,并且系統(tǒng)講更新的數(shù)據(jù)保存到數(shù)據(jù)庫中。本系統(tǒng)實(shí)現(xiàn)基于Web的查詢、修改等功能(由多個(gè)模塊組成),每個(gè)模塊由一組頁面及相關(guān)程序組成,完成相對獨(dú)立的任務(wù)。此外還涉及到數(shù)據(jù)庫的數(shù)據(jù)訪問,對數(shù)據(jù)庫數(shù)據(jù)的操作等。從以往的系統(tǒng)開發(fā)實(shí)例中可以發(fā)現(xiàn),采用 Django技術(shù)可以實(shí)現(xiàn)以上各種功能。所以,該系統(tǒng)在技術(shù)上是可行的。2.3操作可行性分析使用該系統(tǒng)的大多數(shù)是學(xué)校相關(guān)部門的員工,由于他們所接受的高等教育及工作的需要,對他們來說,操作本系統(tǒng)將會(huì)十分的簡便。系統(tǒng)是基于 Web的工作界面,管理人員無論是通過局域網(wǎng)還是互聯(lián)網(wǎng),都能在瀏覽器中對員工信息進(jìn)行有效的管理,隨時(shí)可以更新員工的相關(guān)信息,用戶只需在自己的計(jì)算機(jī)上通過 Web瀏覽器訪問本系統(tǒng),同時(shí)所有的操作都是基于Web的操作式,如:、按鈕、文本框等等。所有的操作通過瀏覽器完成,客戶端不需要配置其他應(yīng)用軟件,用戶不需培訓(xùn),只要稍微提示一下即可。因此,在操作使用上,本系統(tǒng)簡單、便,易于使用戶接受,因而是十分可行的。2.4法律可行性分析本課題為自主研究開發(fā),不侵犯任個(gè)人、集體以及的利益,也堅(jiān)決不會(huì)違反的任法律法規(guī)與政策,不會(huì)以營利為目的將此系統(tǒng)軟件進(jìn)行售賣。在開發(fā)此系統(tǒng)的過程中,所進(jìn)行參考的資料及文獻(xiàn),都是通過學(xué)校圖書館和電子閱覽室進(jìn)行查閱學(xué)習(xí),需要付費(fèi)的資料都是經(jīng)過合法的式,包括學(xué)校付費(fèi)和個(gè)人付費(fèi),不涉及侵犯和專利的違法行為。所以,本課題在法律可行性上分析,是可以實(shí)現(xiàn)的。2.5相關(guān)技術(shù)簡介B/S體系相關(guān)介紹B/S,即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),隨著Internet技術(shù)的不斷發(fā)展與演變,B/S是C/S結(jié)構(gòu)的一種拓展和延伸。B/S結(jié)構(gòu)下,WWW瀏覽器被用來實(shí)現(xiàn)完整的用戶界面,在前端實(shí)現(xiàn)一部分的事物邏輯,而所謂的 3-tier架構(gòu)在服務(wù)器端的形成是由最主要的事物邏輯實(shí)現(xiàn)的。 B/S結(jié)構(gòu),主要是利用WWW瀏覽器成熟的技術(shù),結(jié)合瀏覽器(VBScript,JavaScript)和ActiveX技術(shù)的各種Script語言,使用瀏覽器就可以實(shí)現(xiàn)強(qiáng)大功能,這些強(qiáng)大功能原本是需要專用的復(fù)雜軟件才可以實(shí)現(xiàn)的,并節(jié)省開發(fā)成本,這是一個(gè)新的軟件系統(tǒng)施工技術(shù)。在操作系統(tǒng)部被Windows98/Windows2000 的瀏覽器技術(shù)植入的同時(shí),B/S結(jié)構(gòu)已經(jīng)成為當(dāng)今被人類應(yīng)用的首選架構(gòu)。隨著互聯(lián)網(wǎng)和萬維網(wǎng)的普及,傳統(tǒng)的主機(jī)/終端和C/S無法滿足目前全球開放的網(wǎng)絡(luò)互聯(lián)、信息無處不在和信息共享的新要求,所以 B/S模式(瀏覽器/服務(wù)器)由此誕生。B/S模式最重要的特點(diǎn)是:用戶可以在互聯(lián)網(wǎng)上訪問文本,數(shù)據(jù),圖像,動(dòng)畫,視頻通過WWW瀏覽器的情況下進(jìn)行視頻點(diǎn)播和聲音信息,該信息是由多Web服務(wù)器產(chǎn)生,并且每一個(gè)Web服務(wù)器,可以用各種不同的式連接到數(shù)據(jù)庫服務(wù)器,大量數(shù)據(jù)實(shí)際存儲(chǔ)在數(shù)據(jù)庫服務(wù)器中。除了記錄客戶端的 WWW瀏覽器,一般不需任用戶程序,只需從Web服務(wù)器下載程序到本地執(zhí)行,在下載過程中,如果問題是數(shù)據(jù)庫相關(guān)的指令時(shí),Web服務(wù)器到數(shù)據(jù)庫服務(wù)器來解釋執(zhí)行和并且給Web服務(wù)器,Web服務(wù)器再返回給用戶。在這種結(jié)構(gòu)中,多連接的網(wǎng)絡(luò)形成巨大的網(wǎng)絡(luò),稱為全球網(wǎng)絡(luò),各公司可以在此基礎(chǔ)上構(gòu)造建立自己的 Intranet(企業(yè)部網(wǎng))。Python語言介紹Python是一種簡單易學(xué)、功能強(qiáng)大的編程語言,它有高效率的高層數(shù)據(jù)結(jié)構(gòu),簡單而有效地實(shí)現(xiàn)面向?qū)ο缶幊?。Python簡潔的語法和對動(dòng)態(tài)輸入的支持,再加上解釋性語言的本質(zhì),使得它在大多數(shù)平臺(tái)上的多領(lǐng)域都是一個(gè)理想的 腳本語言,特別適用于快速的應(yīng)用程序開發(fā)。Djang框架介紹Django是使用Python開發(fā)的Web框架。它的架構(gòu)成為MTV(Model-Template-View),Model用于數(shù)據(jù)庫處理,Template是模板系統(tǒng),用于顯示處理,View是控制部分用于Model的處理、數(shù)據(jù)的加工和模板的調(diào)用等工作。由于Django是使用Python開發(fā)的,所以如果用Django開發(fā)站點(diǎn),則用Django庫寫Python代碼。隨著Web技術(shù)的發(fā)展和軟件工程的日益成熟,人們逐漸提出敏捷開發(fā)的要求。但是傳統(tǒng)的Web框架像Struts,Spring,.NET等由于其復(fù)雜性而很難滿足人們的要求,于是逐漸出現(xiàn)一些敏捷性 Web框架。Django是使用Python開發(fā)的優(yōu)秀Web框架,作為一款開源的敏捷開發(fā)框架,受到越來越多的人的關(guān)注。Django是一個(gè)基于MVC構(gòu)造的框架。但是在Django中,控制器接受用戶
輸入的部分由框架自行處理,所以 Django里更關(guān)注的是模型(Model)、模板(Template)和視圖(Views),稱為MTV模式。它們各自的職責(zé)如下:層次職責(zé)模型(Model),即數(shù)據(jù)存取層處理與數(shù)據(jù)相關(guān)的所有事務(wù): 如存取、如驗(yàn)證有效性、包含哪些行為以及數(shù)據(jù)之間的關(guān)系等。模板(Template),即表現(xiàn)層處理與表現(xiàn)相關(guān)的決疋: 如在頁面或其他類型文檔中進(jìn)行顯示。視圖(View),即業(yè)務(wù)邏輯層存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯。模型與模板之間的橋梁。Django的主要目的是簡便、快速的開發(fā)數(shù)據(jù)庫驅(qū)動(dòng)的。它強(qiáng)調(diào)代碼復(fù)用 ,多個(gè)組件可以很便的以“插件”形式服務(wù)于整個(gè)框架, Django有多功能強(qiáng)大的第三插件,你甚至可以很便的開發(fā)出自己的工具包。這使得 Django具有很強(qiáng)的可擴(kuò)展性2.6案選擇案1:Django+Bootstrap+Jquery+Mysql(1)Django是Python的一個(gè)開源Web開發(fā)框架,相比于其他PythonWeb框架,它安裝簡單且靈活多變,符合Python開箱即用的特點(diǎn)。Django框架遵循MVC開發(fā)模式,置多種Web開發(fā)組件,同時(shí)還集成了一個(gè)輕量級Webserver使開發(fā)人員可以最少的代碼、最快的速度,便高效地進(jìn)行各種Web應(yīng)用的開發(fā)和調(diào)試.(2) Bootstrap中包含了豐富的Web組件,根據(jù)這些組件,可以快速的搭建一個(gè)漂亮、功能完備的(3) JQuery是一個(gè)兼容多瀏覽器的javascript庫,核心理念是writeless,domore(寫得更少,做得更多),jQuery的語法設(shè)計(jì)可以使開發(fā)更加便捷,例如操作文檔對象、選擇DOM元素、制作動(dòng)畫效果、事件處理、使用Ajax以及其他功能(4) MySQL是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),其開發(fā)者是瑞典MySQLAB公司⑺。目前MySQL被廣泛地應(yīng)用在中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),多為了降低總體擁有成本而選擇了MySQL作為數(shù)據(jù)庫。案2:Flask(1)Flask是一個(gè)使用Python編寫的輕量級Web應(yīng)用框架Flask也被稱為“microframework”,因?yàn)樗褂煤唵蔚暮诵模胑xtension增加其他功能。Flask沒有默認(rèn)使用的數(shù)據(jù)庫、窗體驗(yàn)證工具。然而,F(xiàn)lask保留了擴(kuò)增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗(yàn)證工具、文件上傳、各種開放式身份驗(yàn)證技術(shù)。最新版本為 0.10。綜上兩個(gè)案:案一比較靈活造價(jià)較低,開發(fā)期較短。案二比較龐大開發(fā)成本高。通過上述體系結(jié)構(gòu)和技術(shù)案上的描述,結(jié)合各面的利弊,同時(shí)根據(jù)實(shí)際開發(fā)需求,本次采用的是B/S體系結(jié)構(gòu),在技術(shù)上采用的是Django+Bootstrap+Jquery+Mysql第3章需求分析所謂"需求分析",是指對要解決的問題進(jìn)行詳細(xì)的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么??梢哉f,在軟件工程當(dāng)中的“需求分析”,就是確定要計(jì)算機(jī)“做什么”,要達(dá)到什么樣的效果。只有在確定了這些需要后,他們才能夠分析和尋求新系統(tǒng)的解決法。需求分析階段的任務(wù)是確定軟件系統(tǒng)功能。3.1總體目標(biāo)本科畢業(yè)設(shè)計(jì)管理系統(tǒng)主要的目標(biāo)是完成以下功能:學(xué)院信息管理:對學(xué)院的信息進(jìn)行管理,包括學(xué)院編號,學(xué)院名稱,學(xué)院簡稱專業(yè)信息管理:對專業(yè)的信息進(jìn)行管理,包括專業(yè)編號,專業(yè)名稱,所在學(xué)院,專業(yè)簡稱學(xué)院管理員管理:對學(xué)院管理員的信息進(jìn)行管理,包括管理員編號,管理員姓名,管理員頭像,所在學(xué)院,手機(jī)號⑷學(xué)院教師管理:對學(xué)院教師的信息進(jìn)行管理,包括教師編號,教師姓名,教師頭像,所在學(xué)院,專業(yè),手機(jī)號學(xué)院學(xué)生管理:對學(xué)院學(xué)生的信息進(jìn)行管理,包括學(xué)生編號,學(xué)生姓名,學(xué)生頭像,所在學(xué)院,專業(yè),手機(jī)號⑹論文配置管理:對學(xué)院的論文選題進(jìn)行配置,包括論文題目,論文要求,輔導(dǎo)老師,所在學(xué)院,論文狀態(tài),選題開始時(shí)間,選題結(jié)束時(shí)間,論文創(chuàng)建時(shí)間,論文修改時(shí)間論文選題管理:對學(xué)院的論文選題結(jié)果進(jìn)行管理,包括論文選題,學(xué)生,選中時(shí)間,改動(dòng)時(shí)間個(gè)人資料管理:對個(gè)人資料進(jìn)行管理,包括姓名,頭像,手機(jī)號等論文選題:學(xué)生進(jìn)行論文選題上傳作品:學(xué)生對選中的論文題目,上傳相關(guān)作品,包括開題報(bào)告,外文翻譯,論文正稿等上傳作品管理:教師對選擇自己論文題目的學(xué)生上次的論文進(jìn)行管理賬戶管理:忘記密碼,重置密碼,修改密碼3.2系統(tǒng)功能分析膏理系統(tǒng),要結(jié)合建立本科畢業(yè)設(shè)設(shè)計(jì)管理體系更加科學(xué)化和規(guī)化。在此基礎(chǔ)上,完成化和自動(dòng)化建設(shè)業(yè)設(shè)計(jì)過程中遇到的各種問題,1成畢業(yè)設(shè)計(jì)管理的信息化、集1.系統(tǒng)的總體功能分析本系統(tǒng)的是根據(jù)對我校同學(xué)的調(diào)研,以及參考類計(jì):1)的編旦的)。號,咲管理系統(tǒng)進(jìn)行如下分析設(shè)畢業(yè)設(shè)計(jì)管理系統(tǒng)對組織的管理:要求對學(xué)院的信息進(jìn)行統(tǒng)計(jì),例如學(xué)院名稱等。管理系統(tǒng)還需統(tǒng)計(jì)院校下設(shè)立多個(gè)專業(yè)(專業(yè)與專業(yè)之間是平級畢業(yè)設(shè)計(jì)管理系統(tǒng)對人員的管理:例如學(xué)校里有一定人數(shù)的學(xué)院管理員,教師和學(xué)生,對于他們之間的關(guān)系和不同的身份需要進(jìn)行管理3)畢業(yè)設(shè)計(jì)管理系統(tǒng)對論文課題的管理:有論文課題的題目、要求、輔但是「基本信息就是論文課息,具體立老師可以有多個(gè)論文題目,位同學(xué)只可以選中一個(gè)論文題目,且不可以跨學(xué)院選課。4)畢業(yè)設(shè)計(jì)管理系統(tǒng)對論文選題結(jié)果的管理:包括論文題目,選導(dǎo)老師,以便精確的查詢相關(guān)記錄,更好的實(shí)現(xiàn)綜合教務(wù)管理的信息化和自動(dòng)化。員2.系統(tǒng)用例建模通過分析以上系統(tǒng)需求,獲得以下用例圖。圖3-1 超級管理員用例圖圖3.2學(xué)院管理員用例圖論之舞總rr理圖3.3學(xué)院教師用例圖圖3.4學(xué)院學(xué)生用例圖1)學(xué)院信息該功能主要完成學(xué)院信息的管理,在實(shí)際應(yīng)用中主要負(fù)責(zé)學(xué)院信息更新和維護(hù),為后面的專業(yè)信息,教師信息,學(xué)生信息等提供基礎(chǔ)的信息。2) 專業(yè)信息該功能主要完成專業(yè)信息的管理,在實(shí)際應(yīng)用中主要負(fù)責(zé)專業(yè)信息更新和維護(hù),為后面的教師信息,學(xué)生信息等提供基礎(chǔ)的信息3) 學(xué)院管理員管理該功能主要完成管理員信息的管理,在實(shí)際中主要負(fù)責(zé)學(xué)院管理員信息更新和維護(hù),學(xué)院的工作全權(quán)由學(xué)院管理員負(fù)責(zé),包括添加學(xué)院老師,學(xué)院學(xué)生,配置論文選題,查看學(xué)院選題結(jié)果。4) 學(xué)院教師管理該功能主要完成學(xué)院教師的管理,在實(shí)際中主要負(fù)責(zé)學(xué)院教師信息更新和維護(hù),該操作只能由學(xué)院管理員進(jìn)行。5) 學(xué)院學(xué)生管理該功能主要完成學(xué)院學(xué)生的管理,在實(shí)際中主要負(fù)責(zé)學(xué)院學(xué)生信息更新和維護(hù),該操作只能由學(xué)院管理員進(jìn)行。6) 論文配置管理該功能主要完成論文配置的管理,在實(shí)際中主要負(fù)責(zé)論文的更新和維護(hù),學(xué)院管理員和學(xué)院教師都可以操作,但是學(xué)院教師只可以對自己負(fù)責(zé)的論文信息進(jìn)行更新和維護(hù),但學(xué)院管理員可以對本學(xué)院的論文信息進(jìn)行更新和維護(hù)。7) 論文選題管理該功能主要完成論文選題記錄的管理,在實(shí)際中主要負(fù)責(zé)查詢論文選題記錄。學(xué)院管理員可以查詢本學(xué)院的所有的論文選題記錄,而學(xué)院教師只可以查詢自己負(fù)責(zé)的論文題目的選題記錄。8) 上傳作品管理該功能主要完成上傳作品的管理,在實(shí)際中主要負(fù)責(zé)查看和下載學(xué)生上傳的論文相關(guān)的作品。該功能只有學(xué)院教師擁有,且只能查看選中自己負(fù)責(zé)的論文題目學(xué)生上傳的作品9)論文選題該功能主要完成論文選題,學(xué)院學(xué)生可以對本學(xué)院已發(fā)布的論文題目進(jìn)行選擇,對于已選中的題目則不可以再次選中,每位學(xué)生只能選擇一個(gè)論文題目。10) 上傳作品該功能主要上傳作品,在實(shí)際中,學(xué)院學(xué)生選中論文題目后,可以上傳外文翻譯,論文正稿等相關(guān)文檔。11) 個(gè)人資料管理該功能主要完成對個(gè)人資料的查看和更新12) 賬號管理該功能主要完成對個(gè)人賬號的賬號激活,忘記密碼,重設(shè)密碼,修改密碼的操作。忘記密碼功能和賬號激活功能,需要填寫注冊,系統(tǒng)會(huì)自動(dòng)發(fā)送到填寫。3.3性能需求軟件在研發(fā)的時(shí)候不僅僅體現(xiàn)在業(yè)務(wù)實(shí)現(xiàn)上,也得體現(xiàn)在用戶體驗(yàn)和性能測試上,總結(jié)了以下幾點(diǎn):用戶體驗(yàn)(1)提示功能。用戶在操作的時(shí)候有一些相關(guān)的提示,比如成功失敗,當(dāng)網(wǎng),絡(luò)超時(shí)的時(shí)候,能第一時(shí)間告訴用戶系統(tǒng)的運(yùn)行狀態(tài),盡量做到友好。(2)操作確認(rèn)。對于一些刪除等不可恢復(fù)的操作應(yīng)明顯提示,避免誤操作。數(shù)據(jù)校驗(yàn)。對于一些比較長的特殊字符的輸入的時(shí)候自動(dòng)校驗(yàn),防止入庫的時(shí)候報(bào)錯(cuò)。(4)缺省設(shè)置。有一些默認(rèn)值是可以總結(jié)出來的常用信息,是可以復(fù)用,能缺省設(shè)置。(5)用戶界面要簡潔。輸入界面盡可能接近實(shí)際,更加友好且讓人能看懂,屏幕上要求輸入盡可能少的數(shù)據(jù)。性能測試學(xué)生進(jìn)行論文選題時(shí),服務(wù)器壓力會(huì)比較大,要考慮優(yōu)化案畢業(yè)論文設(shè)計(jì)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)保持可拓展性,以便后期可能與主體的學(xué)生管理系統(tǒng)進(jìn)行合并,或者進(jìn)行關(guān)聯(lián)。3.4運(yùn)行需求?硬件配置(最低配置)(1)服務(wù)器:CPU:i32GHz處理器存:4096MB硬盤:500G空間(2)客戶端:ROM:1G以上RAM:1G以上GPU:512M處理器:1024GHz以上?運(yùn)行平臺(tái)服務(wù)器操作系統(tǒng):Windowsxp及以上操作系統(tǒng)軟件環(huán)境:Django1.9、BootstrapV3.0、MySQL5.6客戶端瀏覽器:Google,F(xiàn)irefox,IE9以上版本
第4章設(shè)計(jì)與實(shí)現(xiàn)4.1概要設(shè)計(jì)4.1.1系統(tǒng)總體功能本系統(tǒng)運(yùn)用MVC結(jié)構(gòu)將業(yè)務(wù)邏輯,數(shù)據(jù),界面顯示分離出來,一些法和功能模塊可以給別的模塊進(jìn)行復(fù)用,系統(tǒng)主要分為四個(gè)平臺(tái)和十一個(gè)小模塊,利用樹形結(jié)構(gòu)能清晰的展現(xiàn)出他們的層級關(guān)系,先有上級再有下級系統(tǒng)在建設(shè)的時(shí)候也按照樹形的結(jié)構(gòu)進(jìn)行建設(shè),便用戶操作能做到不用培訓(xùn),使用者從上到下錄入數(shù)據(jù)即可。其系統(tǒng)框架圖如圖4-1所示。圖4-1系統(tǒng)體系框架圖zzz z 字院呂稱4.1.2模塊功能教務(wù)管理系統(tǒng)的服務(wù)端分前臺(tái)后臺(tái),前臺(tái)只負(fù)責(zé)展示,后臺(tái)負(fù)責(zé)對數(shù)據(jù)的維護(hù),
系統(tǒng)的手機(jī)端負(fù)責(zé)數(shù)據(jù)的展示和維護(hù)前臺(tái)和后臺(tái)模塊基本一致,其功能如表 4-2所示。骨口.序號功能模塊名稱子功能功能描述1超級管理員平厶學(xué)院信息管理新增,修改,刪除學(xué)院信息專業(yè)信息管理新增,修改,刪除專業(yè)信息管理員信息管理新增,修改,刪除管理員2學(xué)院管理員平臺(tái)學(xué)院老師管理新增,修改,刪除本學(xué)院的老師信息學(xué)院學(xué)生管理新增,修改,刪除本學(xué)院的學(xué)生信息論文配置管理新增,修改,刪除本學(xué)院的論文信息論文選課管理:查看本學(xué)院的全部選課結(jié)果3學(xué)院教師平臺(tái)論文配置管理新增,修改,刪除自己負(fù)責(zé)的論文題目論文選課管理查看自己負(fù)責(zé)的論文題目的選課結(jié)果4學(xué)院學(xué)生平臺(tái)論文選題對本學(xué)院的論文題目進(jìn)行選擇上傳作品對自己選中的論文題目上傳相關(guān)作品表4-1用戶應(yīng)用模塊功能列表4.2數(shù)據(jù)庫設(shè)計(jì)概念設(shè)計(jì)和需求分析是為具體的產(chǎn)品設(shè)計(jì)做準(zhǔn)備,通過對需求進(jìn)行抽象,得到了數(shù)據(jù)模型,使用E-R圖將各個(gè)數(shù)據(jù)模型的關(guān)系連接起來,就可以清晰的看到各個(gè)教務(wù)管理系統(tǒng)各個(gè)實(shí)體的關(guān)系,便人理解。系統(tǒng)模塊屬性圖(1)學(xué)院信息:存放學(xué)院的基本信息包括學(xué)院編號、學(xué)院名稱,學(xué)院簡稱等其實(shí)體屬性圖如圖4-2所示。
圖4-2學(xué)院信息實(shí)體屬性圖(2)專業(yè)信息:存放專業(yè)信息,包括專業(yè)編號、專業(yè)名稱、專業(yè)簡稱,所屬學(xué)院等,其實(shí)體屬性圖如圖4-3所示學(xué)院等,其實(shí)體屬性圖如圖4-3所示圖4-3專業(yè)信息實(shí)體屬性圖學(xué)院管理員信息:存放管理員信息,主要有管理員編號,管理員名稱,所屬學(xué)院,頭像,手機(jī)號,其屬性圖如圖4-4所示。
圖4-4學(xué)院管理員信息實(shí)體屬性圖學(xué)院老師信息:存放學(xué)院老師的基本3信息,主要包含教師編號,教師姓名,所屬學(xué)院,專業(yè),頭像,手機(jī)號等,其實(shí)體屬性圖如圖 4-5所示。圖4-5圖4-5學(xué)院老師信息實(shí)體屬圖學(xué)院學(xué)生信息:存放學(xué)院學(xué)生信息,主要包括,學(xué)生編號,學(xué)生姓名,所屬學(xué)院,專業(yè),頭像,手機(jī)號,其實(shí)體屬性圖如圖 4-6所示學(xué)院學(xué)生信息所屬孚院學(xué)院學(xué)生信息所屬孚院zz圖4-6 學(xué)院學(xué)生信息實(shí)體屬性圖論文信息:存放論文信息,主要包含論文題目、論文要求、輔導(dǎo)老師、所屬學(xué)院,論文狀態(tài),選題開始時(shí)間,選題結(jié)束時(shí)間,修改時(shí)間,創(chuàng)建時(shí)間等,其實(shí)體屬性圖如圖4-7所示。儲(chǔ)改時(shí)間創(chuàng)建時(shí)間爾珈時(shí)問論丈暮求論態(tài)輔導(dǎo)老師汙逾中巳W中題結(jié)陳時(shí)間論文信皀儲(chǔ)改時(shí)間創(chuàng)建時(shí)間爾珈時(shí)問論丈暮求論態(tài)輔導(dǎo)老師汙逾中巳W中題結(jié)陳時(shí)間論文信皀圖4-7論文信息實(shí)體屬性圖論文選題信息:存放論文選題信息,主要包含論文、學(xué)生、選中時(shí)間、改動(dòng)時(shí)間,其實(shí)體屬性圖如圖4-8所示改動(dòng)時(shí)間
改動(dòng)時(shí)間圖4-8論文選題信息實(shí)體屬性圖作品信息:存放學(xué)生上傳作品信息,主要包含論文、學(xué)生、文檔類型、文檔狀態(tài)、文檔、上交時(shí)間、修改時(shí)間,其實(shí)體屬性圖如圖 4-9所示。對當(dāng)型傳外文論文B±傳開題報(bào)告作品佢息圖對當(dāng)型傳外文論文B±傳開題報(bào)告作品佢息圖4-9作品信息實(shí)體屬性圖系統(tǒng)E-R圖系統(tǒng)整體的E-R圖如圖4-10所示Tt.*丸魏審彳it換Tt.*丸魏審彳it換*理eA圖4-10系統(tǒng)E-R圖數(shù)據(jù)庫物理設(shè)計(jì)本課題在數(shù)據(jù)庫設(shè)計(jì)上采用甲骨文公司的 MySQL為數(shù)據(jù)庫管理系統(tǒng)。自從MySQL被甲骨文收購之后,對JAVA的支持更加便了,對于輕量級的數(shù)據(jù)庫MySQL無疑是最好的選擇,有了業(yè)務(wù)邏輯下面將邏輯轉(zhuǎn)換成數(shù)據(jù)庫格式。表4-2基本用戶(auth_user)表字段名稱類型長度主鍵說明允空idint11是用戶ID否passwordvarchar128否密碼否last_logindatetime6否上次登錄時(shí)間是is_superusertinyint1否是否是超級用戶否usernamevarchar30否用戶名否firstnamevarchar30否姓否lastnamevarchar30否名否emailvarchar254否否isstafftinyint1否是否是管理員否isactivetinyint1否是否激活否date_joineddatetime6否否否
表4-3學(xué)院信息表字段名稱類型長度主鍵說明允空idint11是學(xué)院id否indexint11否學(xué)院編號否namevarchar100否學(xué)院名稱否short_namevarchar20否學(xué)院簡稱否表4-4專業(yè)信息表字段名稱類型長度主鍵說明允空idint11是專業(yè)id否indexint11否專業(yè)編號否namevarchar100否專業(yè)名稱否short_namevarchar20否專業(yè)簡稱否academy_idint11否學(xué)院id否表4-5超級管理員(core_superadmin )表字段名稱類型長度主鍵說明允空idint11是管理員id否namevarchar10否管理員名稱否cellphonevarchar15否手機(jī)號否useridint11否用戶id否表4-6學(xué)院管理員(core_admin)表字段名稱類型長度主鍵說明允空idint11是學(xué)院管理員id否indexint11否學(xué)院管理員編號否namevarchar10否姓名否imagevarchar100否頭像否cellphonevarchar15否手機(jī)號否academy_idint11否學(xué)院否user_idint11否用戶id否字段名稱字段名稱類型長度主鍵說明允空表4-7學(xué)院教師(core」nstructor) 表字段名稱類型長度主鍵說明允空idint11是教師id否indexint11否教師編號否namevarchar10否姓名否imagevarchar100否頭像否cellphonevarchar15否手機(jī)號否specialityidint11否專業(yè)id否academyidint11否學(xué)院id否useridint11否用戶id否字段名稱類型長度主鍵說明允空idint11是學(xué)生id否indexint11否學(xué)生編號否namevarchar100否姓名否imagevarchar100否頭像否cellphonevarchar15否手機(jī)號否specialityidint11否專業(yè)id否academyidint11否學(xué)院id否useridint11否用戶id否表4-8學(xué)院學(xué)生(core_student)表表4-9論文信息(core_thesis)表字段名稱 [^型 ^度 [主鍵 ^明 允空
idint11是論文id否titlevarchar200否論文標(biāo)題否contentIongtext否論文要求否statussmallint6否論文狀態(tài)否start_timedatetime6否選題開始時(shí)間否end_timedatetime6否選題結(jié)束時(shí)間否create_timedatetime6否創(chuàng)建時(shí)間否modify_timedatetime6否修改時(shí)間否academy_idint11否學(xué)院id否instructoridint11否輔導(dǎo)老師id否表4-10選題記錄(core_papersection )表字段名稱類型長度主鍵說明允空idint11是選題記錄id否create_timedatetime6否選中時(shí)間否modify_timedatetime6否修改時(shí)間否studentidint11否選中學(xué)生id否thesisidint11否論文id否表4-11驗(yàn)證碼(coreveritycode )表字段名稱類型長度主鍵說明允空idint11是驗(yàn)證碼id否emailvarchar254否目標(biāo)否codevarchar32否驗(yàn)證碼否code_typesmallint6否驗(yàn)證碼類型否is_usedtinyint1否是否被使用否create_timedatetime6否創(chuàng)建時(shí)間否expire_timedatetime6否過期時(shí)間否user_idint11否用戶id否表4-12作品(core_paperdocuments) 表字段名稱類型長度主鍵說明允空idint11是作品id否typesmallint6否作品類型否statussmallint6否作品狀態(tài)否filevarchar100否作品路徑否upload_timedatetime6否上傳時(shí)間否modify_timedatetime6否修改時(shí)間否studentidint11否學(xué)生id否thesisidint11否論文id否4.3功能模塊實(shí)現(xiàn)4.3.1賬號管理1.登陸說明:用戶輸入用戶名,密碼,前臺(tái)對用戶輸入進(jìn)行驗(yàn)證,如果驗(yàn)證通過后,后臺(tái)進(jìn)行邏輯處理,這里采用的是框架自帶的 AuthenticationForm 進(jìn)行驗(yàn)證,如果用戶名和用戶名有誤,貝U直接中斷程序執(zhí)行,返回對應(yīng)錯(cuò)誤信息供前臺(tái)顯示。然后再根據(jù)用戶名判斷用戶屬于哪種權(quán)限,然后跳轉(zhuǎn)到相應(yīng)的操作頁面。前端效果圖:本科生畢業(yè)設(shè)計(jì)管理系統(tǒng)圖4-11用戶登錄頁面url設(shè)置相當(dāng)于客戶端向服務(wù)器發(fā)出request請求的入口,并用來指明要調(diào)用的程序邏輯代碼:student_manage/urls.pyfromdjango.conf.urls importurl,inelude,patternsfromdjango.contrib importadminfromcoreimportviewsascore_viewurlpatterns=[url(r'Aadmin/',admin.site.urls),url(r'Aaccount/',include('core.urls'),name='account'),]core/url.pyfromdjango.conf.urls importurl,include,patternsfrom.importviews,ajaxurlpatterns=[url(r'Alogin/$',views.login,name='login'),url(r'Alogout/$',views」ogout,name='logout'),url(r'Aforget_pwd/$',views.forget_pwd,name='forget_pwd'),url(r'Areset_pwd/$',views.reset_pwd,name='reset_pwd'),]urlpatterns+=[url(r'Acontent/login/$',ajax.login),url(r'Acontent/logout/$',ajax.logout),url(r'Acontent/forget_pwd/$',ajax.forget_pwd),url(r'Acontent/reset_pwd/$',ajax.reset_pwd),url(r'Acontent/change_pwd/$',ajax.change_pwd),]views用來處理程序邏輯,然后呈現(xiàn)到template(一般為GET法,POST法略有不同)template一般為html+CSS的形式,主要是呈現(xiàn)給用戶的表現(xiàn)形式Django中views里面的代碼就是一個(gè)一個(gè)函數(shù)邏輯,處理客戶端(瀏覽器)發(fā)送的HTTPRequest,然后返回HTTPResponse。core/views.pyfromannoying.decorators importrender_to@render_to('」ogin.html')deflogin(request):return{}core/ajax.pyfromdjango.contrib.auth.forms importAuthenticationFormfromdjango.contrib.auth importauthenticate, loginasauth_login,logoutasauth_logoutfromdjango.views.decorators.httpimportrequire_GET,require_POST@require_POSTdeflogin(request):result={"status":0,"apiVersion":"1.0","msg":"","data":{}}#將用戶前臺(tái)的輸入傳遞到form表單中,進(jìn)行驗(yàn)證。form=AuthenticationForm(request,request.POST)ifnotform.is_valid():result['msg']=u'用戶名或者密碼錯(cuò)誤'returnjson_response(result)user=form.get_user()ifnotuser.is_active:result['msg']=u'該賬戶未激活,請先使用進(jìn)行激活’returnjson_response(result)#判斷用戶類型ifis_super_admin(user):result['data']['next']='/superadmin/'elifis_admin(user):result['data']['next']='/secretary/'elifis_instructor(user):result['data']['next']='/instructor/'elifis_student(user):result['data']['next']='/student/'else:result['msg']='該用戶不存在'returnjson_response(result)auth_login(request,user)result['status']=1result['msg']=u'登錄成功'returnjson_response(result)超級管理員主頁面:管理系統(tǒng)口 啊?如Az配置net**±3iFVFKRH冒』嗣IT理雖Svandkw+rWD學(xué)HM事廉曽聘Iff配亦權(quán)繆:-nwdia>■2融字學(xué)零matfi丿*■息4機(jī)■學(xué)總nMChmt/M配■書業(yè)虐息5)iQtectraZK6eoanomy>M1cornpulw>wD圖4-12超級管理員主頁面學(xué)院管理員主頁面:圖4-13學(xué)院管理員主頁面學(xué)院老師主頁面汁■忖+學(xué)兮悅忙F審tk主衛(wèi)VR-./.-FitX■DIt文軾卓瑪畢業(yè)沖計(jì)脅氏財(cái).r;-i!學(xué)院老師主頁面汁■忖+學(xué)兮悅忙F審tk主衛(wèi)VR-./.-FitX■DIt文軾卓瑪畢業(yè)沖計(jì)脅氏財(cái).r;-i!中2aifir435-132ffl16-flr-01MlC7:3SQ/已IS中2014,-U13J1-05-40圖4-14學(xué)院老師主頁面學(xué)院學(xué)生主頁面:管理系統(tǒng)□°6*<tHMn梢與批牌科哇論文血Ifi 謔丈也制SjyrnhMM論丈唱E4■嗣皿業(yè)說it■耳星iftm■中寺辛黃卑阪鋌己液中Qwf囲書世黍我m百布Qyu4lXT<TFn
圖4-15學(xué)院學(xué)生主頁面2.登出:說明:用戶點(diǎn)擊SignOut后,后臺(tái)執(zhí)行登出操作,并跳轉(zhuǎn)到登陸頁面前臺(tái)效果圖:圖4-16用戶登出頁面代碼:core/ajax.pyfromdjango.contrib.auth importauthenticate, loginasauth」ogin,logoutasauth_logout6@require_POST@login_requireddeflogout(request):result={"status":0,"apiVersion":"1.0","msg":"","data":{}}try:auth_logout(request)exceptExceptionase:
result['msg']=u'登出失敗'returnjson_response(result)result['status']=1result['msg']=u'登出成功'returnjson_response(result)忘記密碼說明:用戶可通過找回密碼,然后系統(tǒng)會(huì)通過發(fā)送重置密碼,用戶點(diǎn)擊后,經(jīng)過后臺(tái)驗(yàn)證,可以進(jìn)行重置密碼操作。后臺(tái)處理邏輯:首先后臺(tái)二次驗(yàn)證前臺(tái)輸入的是否格式,如果符合格式,則會(huì)根據(jù)當(dāng)前登錄的用戶和填入的,新建一條驗(yàn)證碼的數(shù)據(jù)庫記錄,用戶點(diǎn)擊中提供的URL后跳轉(zhuǎn)到重置密碼頁面。前臺(tái)效果圖:本科生畢業(yè)設(shè)計(jì)管理系統(tǒng)圖4-17本科生畢業(yè)設(shè)計(jì)管理系統(tǒng)圖4-17用戶忘記密碼頁面core/functions.pyfromcore.modelsimportVerityCodeTypefromdjango.core.mail importEmailMessage#工具函數(shù)發(fā)送defsend_mail(request,user,mail_type,**kwargs):#賬戶激活#賬戶激活ifmail_type==VerityCodeType.ACTIVE_ACCOUNT:subject=u'賬號激活'url=request.build_absolute_uri('/account/active_account/?code=%s' %(code,))body=『請點(diǎn)擊下面的激活您的賬號。此將在 24小時(shí)后失效,請您盡快完成激活。<br/>"body+=u'<ahref="%s">%s</a><br>'%(url,url)body+=u"(如果無法點(diǎn)擊該URL地址,請將它復(fù)制并粘帖到瀏覽器的地址輸入框,然后單擊回車即可。)"elifmail_type==VerityCodeType.FORGET_PWD:subject=u'忘記密碼'url =request.build_absolute_uri('/account/reset_pwd/?code=%s'%(code,))body=『請點(diǎn)擊下面的重置您的賬號密碼。 此將在24小時(shí)后失效,請您盡快完成激活。<br/>"body+=u'<ahref="%s">%s</a><br>'%(url,url)body+=u"(如果無法點(diǎn)擊該URL地址,請將它復(fù)制并粘帖到瀏覽器的地址輸入框,然后單擊回車即可。)"to=kwargs.get('to')#TODOfrom_email 申請一個(gè)測試,是否需要配置密碼msg=EmailMessage(subject,body,to=[user.emailiftoisNoneelseto])msg.content_subtype='html'try:msg.send()exceptException,e:print(str(e))raiseStandardErrorreturnTruecore/forms.pyfromdjangoimportformsclassForgetPwdForm(forms.Form):email=forms.EmailField()core/views.pyfromannoying.decorators importrender_to@render_to('core/forget_pwd.html')defforget_pwd(request):return{}core/ajax.py@require_POSTdefforget_pwd(request):IIHH忘記密碼,發(fā)送重置到:paramrequest::return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}#檢查用戶的是否滿足格式要求form=ForgetPwdForm(request.POST)ifnotform.is_valid():result['msg']=u'格式不正確'returnjson_response(result)email=form.cleaned_data['email']user=get_user_by_email(email)ifnotuser:result['msg']=u'不存在該的用戶'returnjson_response(result)vcode=VerityCode.objects.create(user=user,code_type=VerityCodeType.FORGET_PWD,email=user.email)code=vcode.codetry:send_mail(request,user, VerityCodeType.FORGET_PWD,code=code,to=email)exceptExceptionase:result['msg']=u'發(fā)送失敗'returnjson_response(result)result['status']=1result['msg']=u'發(fā)送成功,請注意查收’returnjson_response(result)重設(shè)密碼說明:當(dāng)用戶收到重置的后,點(diǎn)擊相應(yīng)的,后臺(tái)進(jìn)行驗(yàn)證后,進(jìn)入重設(shè)密碼頁
面,如果驗(yàn)證碼已經(jīng)被使用或者過期,則引發(fā) 404錯(cuò)誤,跳轉(zhuǎn)到404頁面。如果驗(yàn)證碼驗(yàn)證通過,則可以填寫新密碼。點(diǎn)擊修改按鈕后,前臺(tái) POST表單到后臺(tái)進(jìn)行邏輯處理,后臺(tái)用djangoauth自帶的SetPasswordForm進(jìn)行驗(yàn)證,如果驗(yàn)證通過,貝U返回成功信息到前臺(tái)。如果失敗,貝U彈出對應(yīng)的提示。前臺(tái)效果圖:本科生畢業(yè)設(shè)計(jì)管理系統(tǒng)代碼:core/views.py@render_to('core/reset_pwd.html')defreset_pwd(request):verity_code=request.GET.get('code',”)#將請求得到的驗(yàn)證碼與后臺(tái)數(shù)據(jù)庫的記錄進(jìn)行比較try:vcode=VerityCode.objects.get(code=verify_code,code_type=VerityCodeType.FORGET_PWD)exceptVerityCode.DoesNotExist:raiseHttp404#判斷驗(yàn)證碼是否過期ifvcode.is_usedortimezone.now()>vcode.expire_time:raiseHttp404#對use進(jìn)行驗(yàn)證user=authenticate(remote_user=vcode.user)withtransaction.atomic():vcode.is_used=Truevcode.save()#讓user登陸auth_login(request,user)return{}core/ajax.py#對用戶填寫的密碼,確認(rèn)密碼進(jìn)行后臺(tái)驗(yàn)證@require_POSTdefreset_pwd(request):IIHH重置密碼:return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}user=request.user#對用戶填寫的表單進(jìn)行驗(yàn)證form=SetPasswordForm(user,request.POST)ifform.is_valid():form.save()else:result['msg']=u'表單填寫錯(cuò)誤'returnjson_response(result)result['status']=1result['msg']=u'重置密碼成功'returnjson_response(result)修改密碼說明:用戶登錄后,可以在頁面進(jìn)行修改密碼操作,需要提供舊密碼,新密碼,確認(rèn)密碼,點(diǎn)擊提交后,表單交由后臺(tái)處理。 后臺(tái)用djangoauth自帶的PasswordChangeForm 進(jìn)行驗(yàn)證,如果成功,則提示成功信息,如果失敗,則提示失敗信息。前臺(tái)效果圖:圖4-19用戶修改密碼頁面代碼:fromdjango.contrib.auth.forms importPasswordChangeFormfromdjango.views.decorators.http importrequire_POSTfromdjango.contrib.auth.decorators importlogin_required@require_POST@login_requireddefchange_pwd(request):IIHH修改密碼:return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}user=request.user#對用戶提交的表單進(jìn)行驗(yàn)證form=PasswordChangeForm(user,request.POST)ifform.is_valid():form.save()else:result['msg']=u'表單填寫錯(cuò)誤'returnjson_response(result)result['status']=1result['msg']=u'密碼修改成功'returnjson_response(result)4.3.2管理員信息管理1.新增管理員說明:第一.用戶需要填寫管理員的基本信息,點(diǎn)擊提交后,后臺(tái)會(huì)發(fā)送注冊到填寫的第二?用戶完善個(gè)人資料前臺(tái)對所有輸入進(jìn)行校驗(yàn),保證必填項(xiàng)不為空,,手機(jī)等格式符合要求,否則會(huì)彈出警告框,如果無誤后,提交后臺(tái)進(jìn)行邏輯處理。第三?注冊步驟完成后,用戶需要點(diǎn)擊中提供的,進(jìn)行激活操作。前臺(tái)效果圖:
圖4-20新增管理員頁面1圖4-21新增管理員頁面2代碼:core/forms.pyclassEmailUserForm(forms.Form):email=forms.EmailField()defclean_email (self):#用戶的保證UniqueifUser.objects.filter(email=self.cleaned_data['email']).exists():msg=『該已存在”self.add_error('email',msg)else:returnself.cleaned_data['email']classAdminForm(forms.ModelForm):defclean_cellphone(self):cellphone=self.cleaned_data['cellphone']#classMeta:model=Admin#fields='__all__'exclude=['image','cellphone'core/ajax.pyfromcore.formsimportEmailUserFormfromdjango.views.decorators.http importrequire_POSTfromdjango.contrib.auth.forms importUserCreationFormfromdjango.dbimporttransactionfromcore.modelsimportVerityCodeType,VerityCodefromutil.functionsimportjson_response,send_mail@require_POSTdefcreate_user(request):IIHH新建用戶,先建立user表,當(dāng)用戶激活后,再將user表關(guān)聯(lián)到SuperAdmin AdminInstructorStudent表:paramrequest::return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}form_email=EmailUserForm(request.POST)#當(dāng)已經(jīng)存在或者格式不正確時(shí)is_valid()==Falseifform_email.is_valid():email=form_email.cleaned_data['email']else:result['msg']=u'該已存在'returnjson_response(result)form=UserCreationForm(request.POST)ifnotform.is_valid():result['msg']=u'該用戶已經(jīng)存在'returnjson_response(result)else:try:withtransaction.atomic():user=form.save(commit=False)TODO成功后,才執(zhí)行user.save()否則撤回?user.email=emailuser.is_active=Falseuser.email=emailuser.save()vcode=VerityCode.objects.create(user=user,email=emailJcode_type=VerityCodeType.ACTIVE_ACCOUNT)code=vcode.code
user,send_mail(request,VerityCodeType.ACTIVE_ACCOUNT,code=code,to=email)exceptExceptionase:user,result['msg']=u'激活發(fā)送失敗’returnjson_response(result)result['status']=1result['data']['user']=user.idresult['msg']=u'注冊成功,請查收’returnjson_response(result)@require_POSTdefcreate_admin(request):IIHH新建管理員:paramrequest::return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}#user=request.userform=AdminForm(request.POST,request.FILES)ifform.is_valid():form.save()else:result['msg']=u'表單填寫有誤'returnjson_response(result)result['status']=1result['msg']=u'成功'returnjson_response(result)2.刪除管理員說明:所有的刪除操作都需要二次確認(rèn)。如果在代碼執(zhí)行過程中,出現(xiàn)錯(cuò)誤,則任對數(shù)據(jù)庫的修改操作都會(huì)被撤銷。前臺(tái)效果圖:圖4-22刪除管理員頁面代碼:core/ajax.py@require_POSTdefdelete_admin (request):IIHH刪除管理員:paramrequest::return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}try:withtransaction.atomic():admin」d=request.POST.get('admin',”)admin=Admin.objects.get(id=admin_id)user=admin.uservcode=VerityCode.objects.filter(user=user)#刪除user關(guān)聯(lián)的VerityCodevcode.delete()admin.delete()user.delete()exceptExceptionase:result['msg']=u'操作失敗'returnjson_response(result)result['status']=1
result['msg']=u'操作成功'returnjson_response(result)433論文配置管理代碼:說明:學(xué)院管理員可以配置學(xué)院的論文,包括新增,修改,刪除操作所有選項(xiàng)均為必填項(xiàng),且論文題目必須唯一。前臺(tái)效果圖:代碼:說明:學(xué)院管理員可以配置學(xué)院的論文,包括新增,修改,刪除操作所有選項(xiàng)均為必填項(xiàng),且論文題目必須唯一。前臺(tái)效果圖:core/forms.pyfromcore.modelsimportThesisfromdjangoimportformsclassThesisForm(forms.ModelForm):classMeta:model=Thesisfields='__all__'core/ajax.py@require_POSTdefcreate_thesis(request):IIHH學(xué)院管理員新增選題:paramrequest::return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}form=ThesisForm(request.POST)ifform.is_valid():form.save()else:result['msg']=u'表單錯(cuò)誤'returnjson_response(result)result['status']=1result['msg']=u'新增成功'returnjson_response(result)4.3.4 論文選題說明:只有學(xué)生可以進(jìn)行選題,并且只可以選擇本學(xué)院的論文題目,已經(jīng)被選中的題目無法再次被選中。如果選中成功后,則當(dāng)前頁面進(jìn)行刷新,且選中題目的狀態(tài)更改為已選中。前臺(tái)效果圖:圖4-24論文選題頁面代碼:core/forms.pyfromcore.modelimportPaperSectionclassPaperSectionForm (forms.ModelForm):classMeta:model=PaperSectionfields='__all__'core/ajax.py@require_POST@login_requireddefchoice_thesis(request):IIHH學(xué)生論文選題:paramrequest::return:IIHH#只有學(xué)生可以選題,只可以選擇本學(xué)院的題目result={"status":0,"apiVersion":"1.0","msg":"","data":{}}form=PaperSectionForm(request.POST)ifform.is_valid():paper=form.save(commit=False)else:result['msg']=u'選題失敗'returnjson_response(result)try:withtransaction.atomic():thesis=paper.thesisthesis.status=Thesis.THESIS_STATUS[3][0]thesis.save()paper.save()exceptExceptionase:result['msg']=u"InnerError"returnjson_response(result)result['status']=1result['msg']=u"選題成功"returnjson_response(result)第5章系統(tǒng)測試測試是開發(fā)時(shí)期最后一個(gè)階段,是保證軟件質(zhì)量的重要手段。軟件測試就是在
受控制的條件下對系統(tǒng)或應(yīng)用程序進(jìn)行操作并評價(jià)操作結(jié)果的過程 ,所謂控制條件應(yīng)包括正常條件與非正常條件,根據(jù)需求分析階段和設(shè)計(jì)階段的相關(guān)文檔,包括功能性需求、非功能性需求多面因素考慮來設(shè)定,系統(tǒng)測試用例需要考慮的問題有功能、易用性、性能、安全等。為了保證教務(wù)管理系統(tǒng)能夠高效、穩(wěn)定的運(yùn)轉(zhuǎn),在開發(fā)過程中,對軟件進(jìn)行單元測試。從本質(zhì)上說,軟件測試是"探測",在"探測"中發(fā)現(xiàn)軟件的毛病。5.1單元測試單元測試也稱模塊測試或程序測試,單元測試是對每個(gè)模塊單獨(dú)進(jìn)行的,驗(yàn)證模塊接口與設(shè)計(jì)是否一致,基本路徑測試法就可以較好地解決這類問題。對源碼進(jìn)行審查,對照設(shè)計(jì)說明書,表態(tài)地檢查源程序是否符合功能的邏輯要求,是進(jìn)行單元測試前的重要工作工。一般是由程序員完成,也稱程序調(diào)試。5.2黑盒測試黑盒測試也可以稱為功能測試、數(shù)據(jù)驅(qū)動(dòng)測試和基于規(guī)格說明的測試。已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求首先,根據(jù)用戶需求報(bào)告中關(guān)于功能要求和性能指標(biāo)的規(guī)格說明書, 定義相應(yīng)的測試需求報(bào)告,即制訂黑盒測試的最高標(biāo)準(zhǔn),以后所有的測試工作都將圍繞著測試需求來進(jìn)行,符合測試需求的應(yīng)用程序即是合格的,同時(shí),還要適當(dāng)選擇測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度施工現(xiàn)場安全監(jiān)測服務(wù)合同
- 2024版買賣摩托車合同協(xié)議書
- 2025版貸款購房房屋裝修工程智能家居系統(tǒng)維護(hù)合同3篇
- 2024年度專業(yè)房地產(chǎn)代理買賣合作協(xié)議2篇
- 2024教室裝修合同樣本
- 2025年度酒店客房租賃與酒店設(shè)施設(shè)備租賃及維護(hù)合同2篇
- 2025版環(huán)保產(chǎn)業(yè)技術(shù)轉(zhuǎn)移轉(zhuǎn)化合作協(xié)議3篇
- 二零二五年度臨時(shí)工就業(yè)援助協(xié)議3篇
- 2024年金融機(jī)構(gòu)不良資產(chǎn)清收委托協(xié)議3篇
- 2024年適用型潔具采購協(xié)議樣本版B版
- 色粉-MSDS物質(zhì)安全技術(shù)資料
- 骨科學(xué)研究生復(fù)試真題匯總版
- 石油化工鋼結(jié)構(gòu)工程施工及驗(yàn)收規(guī)范
- 遼海版六年級音樂上冊第8單元《3. 演唱 姐妹們上場院》教學(xué)設(shè)計(jì)
- 形勢任務(wù)教育宣講材料第一講——講上情
- 物業(yè)安全員考核實(shí)施細(xì)則
- 中國地質(zhì)大學(xué)(武漢)教育發(fā)展基金會(huì)籌備成立情況報(bào)告
- 第四章破產(chǎn)法(破產(chǎn)法)教學(xué)課件
- PE拖拉管施工方案標(biāo)準(zhǔn)版
- 7725i進(jìn)樣閥說明書
- 鐵路建設(shè)項(xiàng)目施工企業(yè)信用評價(jià)辦法(鐵總建設(shè)〔2018〕124號)
評論
0/150
提交評論