




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
zz本科畢業(yè)設計(論文)本科畢業(yè)設計管理系統(tǒng)的設計與開發(fā)學號:120學生姓名:侃指導教師:威所在學院:計算機科學技術學院所學專業(yè):計算機科學與技術專業(yè)(師)2016年6月隨著科技的進步和信息技術的開發(fā),已經(jīng)有越來越多的應用從原有的服務器 /客戶端架構轉(zhuǎn)變成了服務器/瀏覽器的架構。對于普通用戶而言,不需要使用特定的客戶端,而只需要使用所有系統(tǒng)都置的網(wǎng)頁瀏覽器就可以完成對服務器端的控制和查詢,簡化了操作,也便了在不同機器上使用。畢業(yè)設計的管理是高校管理工作中的一項重要容。目前,很多高校的畢業(yè)設計管理還存在一些問題。 采用Pythonweb輕量級框架可以快速敏捷開發(fā),同時降低了開發(fā)及維護的成本及難度。本課題的目標是希望能夠簡化高校畢業(yè)設計管理流程,為學生畢業(yè)設計選題,論文上交,老師和學生的溝通,建立便捷高效規(guī)的通道。本課題采用 B/S的體系架構,服務端采用了Python流行的MVCWeb框架Django,前端使用Bootstrap響應式框架,以及Jquery。服務端和客戶端之間通訊運用http請求技術,數(shù)據(jù)交互采用json規(guī)。關鍵詞:Python;Django;畢業(yè)設計;管理系統(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ā)展動態(tài) 5\o"CurrentDocument"1.5初步設想 6\o"CurrentDocument"第2章案論證 7\o"CurrentDocument"經(jīng)濟可行性分析 7\o"CurrentDocument"技術可行性分析 7\o"CurrentDocument"操作可行性分析 7\o"CurrentDocument"2.4法律可行性分析 8\o"CurrentDocument"2.5相關技術簡介 8\o"CurrentDocument"2.6案選擇 9\o"CurrentDocument"第3章需求分析 11\o"CurrentDocument"總體目標 11\o"CurrentDocument"3.2系統(tǒng)功能分析 12\o"CurrentDocument"3.3性能需求 15\o"CurrentDocument"運行需求 16\o"CurrentDocument"第4章設計與實現(xiàn) 17\o"CurrentDocument"概要設計 17系統(tǒng)總體功能 17模塊功能 18\o"CurrentDocument"4.2數(shù)據(jù)庫設計 18\o"CurrentDocument"4.3功能模塊實現(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"參考文獻 53附錄 54第1章緒論1.1選題背景目前,高校部管理系統(tǒng)已經(jīng)日趨完善,基本可以適用大多數(shù)的場景。但是由于其采用的技術和架構過于舊,導致使用效果不佳,性能無法滿足新的需求。隨著Web2.0的快速發(fā)展,采用一些輕量級的Web框架,可以快速開發(fā)新的系統(tǒng),同時重構原有項目,對于校管理系統(tǒng)尤為適用。1.2選題來源畢業(yè)設計的管理是高校管理工作中的一項重要容。 目前,很多高校的畢業(yè)設計管理還存在一些問題。例如:根據(jù)教學要求,通常學生在大學最后一年需要在外地進行實習,而此時又面臨著畢業(yè)設計選題問題;另外,畢業(yè)設計完成時,論文的上交也存在困難。同時,在做畢業(yè)設計的過程中,由于學生在外,指導老師對學生的指導和交流也會遇到一些麻煩。因此迫切解決以上這些問題 ,使高校畢業(yè)設計管理效率更高,使其更加規(guī)化,科學化和信息化,滿足教學和管理要求。1.3選題意義本科畢業(yè)設計管理系統(tǒng)的設計與開發(fā)能夠彌補目前高校部管理系統(tǒng)的空白,更好的服務于畢業(yè)生?因此本科畢業(yè)設計管理系統(tǒng)的設計與開發(fā),對高校的信息管理和快速發(fā)展具有重要意義。1.4國外發(fā)展動態(tài)隨著互聯(lián)網(wǎng)的不斷發(fā)展,已經(jīng)有越來越多的應用從原有的服務器/客戶端架構轉(zhuǎn)變成了服務器/瀏覽器的架構。這樣,對于普通用戶而言,不需要使用特定的客戶端,而只需要使用所有,系統(tǒng)都置的網(wǎng)頁瀏覽器就可以完成對服務器端的控制和查詢,簡化了操作,也便了在不同機器上使用。正因如此, web應用的開發(fā)正在被越來越多的人們所關注。Web應用框架就是在這種情況下出現(xiàn)的,它是一種用來協(xié)助開發(fā)動態(tài)、web應用和服務的軟件框架。開發(fā)它的目的在于抽象出 web開發(fā)中常用到代碼段,操作等共有部分,減少web應用開發(fā)的工作量。Django是使用Python開發(fā)的Rails式的Web框架,它是一套開源的框架,雖然現(xiàn)在的版本號還是1.9,但是其上已經(jīng)有多成功的應用1.5初步設想Django是一種Rails框架,它很好的支持了敏捷開發(fā)。 Django使用Python開發(fā),而Python語言置了單元測試的庫,這樣在編寫網(wǎng)頁的時候,可以便的使用置庫來測試的控制邏輯,為高質(zhì)量軟件打下了良好的基礎。 Python是一種解釋型的語言,對代碼的更改可以實時顯現(xiàn),所以在某種程度上符合了持續(xù)集成的要求。而Python置單元測試的庫也為重構的正確性提供了保證。另外,對于一些通用的Web應用,如用戶登錄,用戶登出,更改密碼,顯示數(shù)據(jù)信息等,Django都提供了置的模塊以供直接調(diào)用,加快了開發(fā)的進度,也降低了開發(fā)的難度及出錯的可能性。而MVC分離的架構,可以很好的用于任務的分配,也保證了對于控制邏輯代碼的更改不會對上層用戶界面及下層數(shù)據(jù)庫接口造成太大的影響, 降低了開發(fā)及維護的成本及難度。本系統(tǒng)采用Pycharm為開發(fā)平臺,輔之以Sublime編輯器,數(shù)據(jù)庫采用MySQL,采用測試驅(qū)動開發(fā),以為一個開發(fā)期,開源到Github上,拓展Django自帶的用戶登錄認證系統(tǒng),結(jié)合Bootstrap,Jquery進行網(wǎng)頁的編寫。預計完成以下功能:學院信息管理、專業(yè)信息管理、班級信息管理、學生信息管理、教師信息管理、課程信息管理、選課信息管理、成績信息管理、新聞信息管理。超級管理員平臺,學院信息管理, 專業(yè)信息管理,學院管理員管理學院管理員平臺,學院教師管理, 學院學生管理, 論文配置管理,論文選題管理,個人資料管理學院教師平臺, 論文配置管理,論文選題管理,個人資料管理,上傳作品管理學院學生平臺, 論文選題,上傳作品,個人資料管理賬戶管理,包括登錄,登出,忘記密碼,重置密碼,修改密碼。第2章案論證本章對本科畢業(yè)設計管理系統(tǒng)有效的可行性分析。可行性分析是經(jīng)常采用的一種工程項目是否可行的技術。主要是在系統(tǒng)的設計思想上,對系統(tǒng)的研發(fā)是否具備可行性和可能性進行一些研究和思考,主要會從費用、技術等面來進行分析和研究,以減少項目開發(fā)風險,避免人力、物力和財力的浪費。下文將從經(jīng)濟、技術、操作、法律等四個可行性對本課題的提出的案進行論證。2.1經(jīng)濟可行性分析關于各種軟件和硬件、輔助設備的調(diào)試和配置,以及維護系統(tǒng)等這些費用都可以忽略不計,因為這些設備,在我們?nèi)粘W習生活中都是必備的。本課題是在學習與實踐基礎上研究開發(fā)的,Pycharm、Submine都是可以免費下載使用的,有關學習資料可以在學校的圖書館或者電子閱覽室進行查詢、學習,并不涉及其他作者的專利和的購買費用。因此,從經(jīng)濟可行性上來分析,本科畢業(yè)設計管理系統(tǒng)是可以實現(xiàn)的。2.2技術可行性分析本系統(tǒng)使用Python進行開發(fā),Django框架已經(jīng)是比較成熟的產(chǎn)品,YouTuBe,Quora,DICUSS均選擇它作為開發(fā)平臺。因此,在技術上Django可以快速開發(fā)迭代。本系統(tǒng)采用B/S技術模式,掌握MVC架構的三層設計思想,選擇可行的案、合理安排開發(fā)過程,用Bootstrap做CSS框架加快開發(fā),并采用已有的HTML優(yōu)秀模板作為與用戶交互的界面,同時實現(xiàn)用戶登錄系統(tǒng)的身份驗證,以及教師,學生信息進行增加、刪除、修改等操作,并且系統(tǒng)講更新的數(shù)據(jù)保存到數(shù)據(jù)庫中。本系統(tǒng)實現(xiàn)基于Web的查詢、修改等功能(由多個模塊組成),每個模塊由一組頁面及相關程序組成,完成相對獨立的任務。此外還涉及到數(shù)據(jù)庫的數(shù)據(jù)訪問,對數(shù)據(jù)庫數(shù)據(jù)的操作等。從以往的系統(tǒng)開發(fā)實例中可以發(fā)現(xiàn),采用 Django技術可以實現(xiàn)以上各種功能。所以,該系統(tǒng)在技術上是可行的。2.3操作可行性分析使用該系統(tǒng)的大多數(shù)是學校相關部門的員工,由于他們所接受的高等教育及工作的需要,對他們來說,操作本系統(tǒng)將會十分的簡便。系統(tǒng)是基于 Web的工作界面,管理人員無論是通過局域網(wǎng)還是互聯(lián)網(wǎng),都能在瀏覽器中對員工信息進行有效的管理,隨時可以更新員工的相關信息,用戶只需在自己的計算機上通過 Web瀏覽器訪問本系統(tǒng),同時所有的操作都是基于Web的操作式,如:、按鈕、文本框等等。所有的操作通過瀏覽器完成,客戶端不需要配置其他應用軟件,用戶不需培訓,只要稍微提示一下即可。因此,在操作使用上,本系統(tǒng)簡單、便,易于使用戶接受,因而是十分可行的。2.4法律可行性分析本課題為自主研究開發(fā),不侵犯任個人、集體以及的利益,也堅決不會違反的任法律法規(guī)與政策,不會以營利為目的將此系統(tǒng)軟件進行售賣。在開發(fā)此系統(tǒng)的過程中,所進行參考的資料及文獻,都是通過學校圖書館和電子閱覽室進行查閱學習,需要付費的資料都是經(jīng)過合法的式,包括學校付費和個人付費,不涉及侵犯和專利的違法行為。所以,本課題在法律可行性上分析,是可以實現(xiàn)的。2.5相關技術簡介B/S體系相關介紹B/S,即Browser/Server(瀏覽器/服務器)結(jié)構,隨著Internet技術的不斷發(fā)展與演變,B/S是C/S結(jié)構的一種拓展和延伸。B/S結(jié)構下,WWW瀏覽器被用來實現(xiàn)完整的用戶界面,在前端實現(xiàn)一部分的事物邏輯,而所謂的 3-tier架構在服務器端的形成是由最主要的事物邏輯實現(xiàn)的。 B/S結(jié)構,主要是利用WWW瀏覽器成熟的技術,結(jié)合瀏覽器(VBScript,JavaScript)和ActiveX技術的各種Script語言,使用瀏覽器就可以實現(xiàn)強大功能,這些強大功能原本是需要專用的復雜軟件才可以實現(xiàn)的,并節(jié)省開發(fā)成本,這是一個新的軟件系統(tǒng)施工技術。在操作系統(tǒng)部被Windows98/Windows2000 的瀏覽器技術植入的同時,B/S結(jié)構已經(jīng)成為當今被人類應用的首選架構。隨著互聯(lián)網(wǎng)和萬維網(wǎng)的普及,傳統(tǒng)的主機/終端和C/S無法滿足目前全球開放的網(wǎng)絡互聯(lián)、信息無處不在和信息共享的新要求,所以 B/S模式(瀏覽器/服務器)由此誕生。B/S模式最重要的特點是:用戶可以在互聯(lián)網(wǎng)上訪問文本,數(shù)據(jù),圖像,動畫,視頻通過WWW瀏覽器的情況下進行視頻點播和聲音信息,該信息是由多Web服務器產(chǎn)生,并且每一個Web服務器,可以用各種不同的式連接到數(shù)據(jù)庫服務器,大量數(shù)據(jù)實際存儲在數(shù)據(jù)庫服務器中。除了記錄客戶端的 WWW瀏覽器,一般不需任用戶程序,只需從Web服務器下載程序到本地執(zhí)行,在下載過程中,如果問題是數(shù)據(jù)庫相關的指令時,Web服務器到數(shù)據(jù)庫服務器來解釋執(zhí)行和并且給Web服務器,Web服務器再返回給用戶。在這種結(jié)構中,多連接的網(wǎng)絡形成巨大的網(wǎng)絡,稱為全球網(wǎng)絡,各公司可以在此基礎上構造建立自己的 Intranet(企業(yè)部網(wǎng))。Python語言介紹Python是一種簡單易學、功能強大的編程語言,它有高效率的高層數(shù)據(jù)結(jié)構,簡單而有效地實現(xiàn)面向?qū)ο缶幊獭ython簡潔的語法和對動態(tài)輸入的支持,再加上解釋性語言的本質(zhì),使得它在大多數(shù)平臺上的多領域都是一個理想的 腳本語言,特別適用于快速的應用程序開發(fā)。Djang框架介紹Django是使用Python開發(fā)的Web框架。它的架構成為MTV(Model-Template-View),Model用于數(shù)據(jù)庫處理,Template是模板系統(tǒng),用于顯示處理,View是控制部分用于Model的處理、數(shù)據(jù)的加工和模板的調(diào)用等工作。由于Django是使用Python開發(fā)的,所以如果用Django開發(fā)站點,則用Django庫寫Python代碼。隨著Web技術的發(fā)展和軟件工程的日益成熟,人們逐漸提出敏捷開發(fā)的要求。但是傳統(tǒng)的Web框架像Struts,Spring,.NET等由于其復雜性而很難滿足人們的要求,于是逐漸出現(xiàn)一些敏捷性 Web框架。Django是使用Python開發(fā)的優(yōu)秀Web框架,作為一款開源的敏捷開發(fā)框架,受到越來越多的人的關注。Django是一個基于MVC構造的框架。但是在Django中,控制器接受用戶
輸入的部分由框架自行處理,所以 Django里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為MTV模式。它們各自的職責如下:層次職責模型(Model),即數(shù)據(jù)存取層處理與數(shù)據(jù)相關的所有事務: 如存取、如驗證有效性、包含哪些行為以及數(shù)據(jù)之間的關系等。模板(Template),即表現(xiàn)層處理與表現(xiàn)相關的決疋: 如在頁面或其他類型文檔中進行顯示。視圖(View),即業(yè)務邏輯層存取模型及調(diào)取恰當模板的相關邏輯。模型與模板之間的橋梁。Django的主要目的是簡便、快速的開發(fā)數(shù)據(jù)庫驅(qū)動的。它強調(diào)代碼復用 ,多個組件可以很便的以“插件”形式服務于整個框架, Django有多功能強大的第三插件,你甚至可以很便的開發(fā)出自己的工具包。這使得 Django具有很強的可擴展性2.6案選擇案1:Django+Bootstrap+Jquery+Mysql(1)Django是Python的一個開源Web開發(fā)框架,相比于其他PythonWeb框架,它安裝簡單且靈活多變,符合Python開箱即用的特點。Django框架遵循MVC開發(fā)模式,置多種Web開發(fā)組件,同時還集成了一個輕量級Webserver使開發(fā)人員可以最少的代碼、最快的速度,便高效地進行各種Web應用的開發(fā)和調(diào)試.(2) Bootstrap中包含了豐富的Web組件,根據(jù)這些組件,可以快速的搭建一個漂亮、功能完備的(3) JQuery是一個兼容多瀏覽器的javascript庫,核心理念是writeless,domore(寫得更少,做得更多),jQuery的語法設計可以使開發(fā)更加便捷,例如操作文檔對象、選擇DOM元素、制作動畫效果、事件處理、使用Ajax以及其他功能(4) MySQL是一個開放源碼的小型關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),其開發(fā)者是瑞典MySQLAB公司⑺。目前MySQL被廣泛地應用在中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,多為了降低總體擁有成本而選擇了MySQL作為數(shù)據(jù)庫。案2:Flask(1)Flask是一個使用Python編寫的輕量級Web應用框架Flask也被稱為“microframework”,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的數(shù)據(jù)庫、窗體驗證工具。然而,F(xiàn)lask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。最新版本為 0.10。綜上兩個案:案一比較靈活造價較低,開發(fā)期較短。案二比較龐大開發(fā)成本高。通過上述體系結(jié)構和技術案上的描述,結(jié)合各面的利弊,同時根據(jù)實際開發(fā)需求,本次采用的是B/S體系結(jié)構,在技術上采用的是Django+Bootstrap+Jquery+Mysql第3章需求分析所謂"需求分析",是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應輸出什么。可以說,在軟件工程當中的“需求分析”,就是確定要計算機“做什么”,要達到什么樣的效果。只有在確定了這些需要后,他們才能夠分析和尋求新系統(tǒng)的解決法。需求分析階段的任務是確定軟件系統(tǒng)功能。3.1總體目標本科畢業(yè)設計管理系統(tǒng)主要的目標是完成以下功能:學院信息管理:對學院的信息進行管理,包括學院編號,學院名稱,學院簡稱專業(yè)信息管理:對專業(yè)的信息進行管理,包括專業(yè)編號,專業(yè)名稱,所在學院,專業(yè)簡稱學院管理員管理:對學院管理員的信息進行管理,包括管理員編號,管理員姓名,管理員頭像,所在學院,手機號⑷學院教師管理:對學院教師的信息進行管理,包括教師編號,教師姓名,教師頭像,所在學院,專業(yè),手機號學院學生管理:對學院學生的信息進行管理,包括學生編號,學生姓名,學生頭像,所在學院,專業(yè),手機號⑹論文配置管理:對學院的論文選題進行配置,包括論文題目,論文要求,輔導老師,所在學院,論文狀態(tài),選題開始時間,選題結(jié)束時間,論文創(chuàng)建時間,論文修改時間論文選題管理:對學院的論文選題結(jié)果進行管理,包括論文選題,學生,選中時間,改動時間個人資料管理:對個人資料進行管理,包括姓名,頭像,手機號等論文選題:學生進行論文選題上傳作品:學生對選中的論文題目,上傳相關作品,包括開題報告,外文翻譯,論文正稿等上傳作品管理:教師對選擇自己論文題目的學生上次的論文進行管理賬戶管理:忘記密碼,重置密碼,修改密碼3.2系統(tǒng)功能分析膏理系統(tǒng),要結(jié)合建立本科畢業(yè)設設計管理體系更加科學化和規(guī)化。在此基礎上,完成化和自動化建設業(yè)設計過程中遇到的各種問題,1成畢業(yè)設計管理的信息化、集1.系統(tǒng)的總體功能分析本系統(tǒng)的是根據(jù)對我校同學的調(diào)研,以及參考類計:1)的編旦的)。號,咲管理系統(tǒng)進行如下分析設畢業(yè)設計管理系統(tǒng)對組織的管理:要求對學院的信息進行統(tǒng)計,例如學院名稱等。管理系統(tǒng)還需統(tǒng)計院校下設立多個專業(yè)(專業(yè)與專業(yè)之間是平級畢業(yè)設計管理系統(tǒng)對人員的管理:例如學校里有一定人數(shù)的學院管理員,教師和學生,對于他們之間的關系和不同的身份需要進行管理3)畢業(yè)設計管理系統(tǒng)對論文課題的管理:有論文課題的題目、要求、輔但是「基本信息就是論文課息,具體立老師可以有多個論文題目,位同學只可以選中一個論文題目,且不可以跨學院選課。4)畢業(yè)設計管理系統(tǒng)對論文選題結(jié)果的管理:包括論文題目,選導老師,以便精確的查詢相關記錄,更好的實現(xiàn)綜合教務管理的信息化和自動化。員2.系統(tǒng)用例建模通過分析以上系統(tǒng)需求,獲得以下用例圖。圖3-1 超級管理員用例圖圖3.2學院管理員用例圖論之舞總rr理圖3.3學院教師用例圖圖3.4學院學生用例圖1)學院信息該功能主要完成學院信息的管理,在實際應用中主要負責學院信息更新和維護,為后面的專業(yè)信息,教師信息,學生信息等提供基礎的信息。2) 專業(yè)信息該功能主要完成專業(yè)信息的管理,在實際應用中主要負責專業(yè)信息更新和維護,為后面的教師信息,學生信息等提供基礎的信息3) 學院管理員管理該功能主要完成管理員信息的管理,在實際中主要負責學院管理員信息更新和維護,學院的工作全權由學院管理員負責,包括添加學院老師,學院學生,配置論文選題,查看學院選題結(jié)果。4) 學院教師管理該功能主要完成學院教師的管理,在實際中主要負責學院教師信息更新和維護,該操作只能由學院管理員進行。5) 學院學生管理該功能主要完成學院學生的管理,在實際中主要負責學院學生信息更新和維護,該操作只能由學院管理員進行。6) 論文配置管理該功能主要完成論文配置的管理,在實際中主要負責論文的更新和維護,學院管理員和學院教師都可以操作,但是學院教師只可以對自己負責的論文信息進行更新和維護,但學院管理員可以對本學院的論文信息進行更新和維護。7) 論文選題管理該功能主要完成論文選題記錄的管理,在實際中主要負責查詢論文選題記錄。學院管理員可以查詢本學院的所有的論文選題記錄,而學院教師只可以查詢自己負責的論文題目的選題記錄。8) 上傳作品管理該功能主要完成上傳作品的管理,在實際中主要負責查看和下載學生上傳的論文相關的作品。該功能只有學院教師擁有,且只能查看選中自己負責的論文題目學生上傳的作品9)論文選題該功能主要完成論文選題,學院學生可以對本學院已發(fā)布的論文題目進行選擇,對于已選中的題目則不可以再次選中,每位學生只能選擇一個論文題目。10) 上傳作品該功能主要上傳作品,在實際中,學院學生選中論文題目后,可以上傳外文翻譯,論文正稿等相關文檔。11) 個人資料管理該功能主要完成對個人資料的查看和更新12) 賬號管理該功能主要完成對個人賬號的賬號激活,忘記密碼,重設密碼,修改密碼的操作。忘記密碼功能和賬號激活功能,需要填寫注冊,系統(tǒng)會自動發(fā)送到填寫。3.3性能需求軟件在研發(fā)的時候不僅僅體現(xiàn)在業(yè)務實現(xiàn)上,也得體現(xiàn)在用戶體驗和性能測試上,總結(jié)了以下幾點:用戶體驗(1)提示功能。用戶在操作的時候有一些相關的提示,比如成功失敗,當網(wǎng),絡超時的時候,能第一時間告訴用戶系統(tǒng)的運行狀態(tài),盡量做到友好。(2)操作確認。對于一些刪除等不可恢復的操作應明顯提示,避免誤操作。數(shù)據(jù)校驗。對于一些比較長的特殊字符的輸入的時候自動校驗,防止入庫的時候報錯。(4)缺省設置。有一些默認值是可以總結(jié)出來的常用信息,是可以復用,能缺省設置。(5)用戶界面要簡潔。輸入界面盡可能接近實際,更加友好且讓人能看懂,屏幕上要求輸入盡可能少的數(shù)據(jù)。性能測試學生進行論文選題時,服務器壓力會比較大,要考慮優(yōu)化案畢業(yè)論文設計管理系統(tǒng)設計與實現(xiàn)保持可拓展性,以便后期可能與主體的學生管理系統(tǒng)進行合并,或者進行關聯(lián)。3.4運行需求?硬件配置(最低配置)(1)服務器:CPU:i32GHz處理器存:4096MB硬盤:500G空間(2)客戶端:ROM:1G以上RAM:1G以上GPU:512M處理器:1024GHz以上?運行平臺服務器操作系統(tǒng):Windowsxp及以上操作系統(tǒng)軟件環(huán)境:Django1.9、BootstrapV3.0、MySQL5.6客戶端瀏覽器:Google,F(xiàn)irefox,IE9以上版本
第4章設計與實現(xiàn)4.1概要設計4.1.1系統(tǒng)總體功能本系統(tǒng)運用MVC結(jié)構將業(yè)務邏輯,數(shù)據(jù),界面顯示分離出來,一些法和功能模塊可以給別的模塊進行復用,系統(tǒng)主要分為四個平臺和十一個小模塊,利用樹形結(jié)構能清晰的展現(xiàn)出他們的層級關系,先有上級再有下級系統(tǒng)在建設的時候也按照樹形的結(jié)構進行建設,便用戶操作能做到不用培訓,使用者從上到下錄入數(shù)據(jù)即可。其系統(tǒng)框架圖如圖4-1所示。圖4-1系統(tǒng)體系框架圖zzz z 字院呂稱4.1.2模塊功能教務管理系統(tǒng)的服務端分前臺后臺,前臺只負責展示,后臺負責對數(shù)據(jù)的維護,
系統(tǒng)的手機端負責數(shù)據(jù)的展示和維護前臺和后臺模塊基本一致,其功能如表 4-2所示。骨口.序號功能模塊名稱子功能功能描述1超級管理員平厶學院信息管理新增,修改,刪除學院信息專業(yè)信息管理新增,修改,刪除專業(yè)信息管理員信息管理新增,修改,刪除管理員2學院管理員平臺學院老師管理新增,修改,刪除本學院的老師信息學院學生管理新增,修改,刪除本學院的學生信息論文配置管理新增,修改,刪除本學院的論文信息論文選課管理:查看本學院的全部選課結(jié)果3學院教師平臺論文配置管理新增,修改,刪除自己負責的論文題目論文選課管理查看自己負責的論文題目的選課結(jié)果4學院學生平臺論文選題對本學院的論文題目進行選擇上傳作品對自己選中的論文題目上傳相關作品表4-1用戶應用模塊功能列表4.2數(shù)據(jù)庫設計概念設計和需求分析是為具體的產(chǎn)品設計做準備,通過對需求進行抽象,得到了數(shù)據(jù)模型,使用E-R圖將各個數(shù)據(jù)模型的關系連接起來,就可以清晰的看到各個教務管理系統(tǒng)各個實體的關系,便人理解。系統(tǒng)模塊屬性圖(1)學院信息:存放學院的基本信息包括學院編號、學院名稱,學院簡稱等其實體屬性圖如圖4-2所示。
圖4-2學院信息實體屬性圖(2)專業(yè)信息:存放專業(yè)信息,包括專業(yè)編號、專業(yè)名稱、專業(yè)簡稱,所屬學院等,其實體屬性圖如圖4-3所示學院等,其實體屬性圖如圖4-3所示圖4-3專業(yè)信息實體屬性圖學院管理員信息:存放管理員信息,主要有管理員編號,管理員名稱,所屬學院,頭像,手機號,其屬性圖如圖4-4所示。
圖4-4學院管理員信息實體屬性圖學院老師信息:存放學院老師的基本3信息,主要包含教師編號,教師姓名,所屬學院,專業(yè),頭像,手機號等,其實體屬性圖如圖 4-5所示。圖4-5圖4-5學院老師信息實體屬圖學院學生信息:存放學院學生信息,主要包括,學生編號,學生姓名,所屬學院,專業(yè),頭像,手機號,其實體屬性圖如圖 4-6所示學院學生信息所屬孚院學院學生信息所屬孚院zz圖4-6 學院學生信息實體屬性圖論文信息:存放論文信息,主要包含論文題目、論文要求、輔導老師、所屬學院,論文狀態(tài),選題開始時間,選題結(jié)束時間,修改時間,創(chuàng)建時間等,其實體屬性圖如圖4-7所示。儲改時間創(chuàng)建時間爾珈時問論丈暮求論態(tài)輔導老師汙逾中巳W中題結(jié)陳時間論文信皀儲改時間創(chuàng)建時間爾珈時問論丈暮求論態(tài)輔導老師汙逾中巳W中題結(jié)陳時間論文信皀圖4-7論文信息實體屬性圖論文選題信息:存放論文選題信息,主要包含論文、學生、選中時間、改動時間,其實體屬性圖如圖4-8所示改動時間
改動時間圖4-8論文選題信息實體屬性圖作品信息:存放學生上傳作品信息,主要包含論文、學生、文檔類型、文檔狀態(tài)、文檔、上交時間、修改時間,其實體屬性圖如圖 4-9所示。對當型傳外文論文B±傳開題報告作品佢息圖對當型傳外文論文B±傳開題報告作品佢息圖4-9作品信息實體屬性圖系統(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ù)庫設計上采用甲骨文公司的 MySQL為數(shù)據(jù)庫管理系統(tǒng)。自從MySQL被甲骨文收購之后,對JAVA的支持更加便了,對于輕量級的數(shù)據(jù)庫MySQL無疑是最好的選擇,有了業(yè)務邏輯下面將邏輯轉(zhuǎn)換成數(shù)據(jù)庫格式。表4-2基本用戶(auth_user)表字段名稱類型長度主鍵說明允空idint11是用戶ID否passwordvarchar128否密碼否last_logindatetime6否上次登錄時間是is_superusertinyint1否是否是超級用戶否usernamevarchar30否用戶名否firstnamevarchar30否姓否lastnamevarchar30否名否emailvarchar254否否isstafftinyint1否是否是管理員否isactivetinyint1否是否激活否date_joineddatetime6否否否
表4-3學院信息表字段名稱類型長度主鍵說明允空idint11是學院id否indexint11否學院編號否namevarchar100否學院名稱否short_namevarchar20否學院簡稱否表4-4專業(yè)信息表字段名稱類型長度主鍵說明允空idint11是專業(yè)id否indexint11否專業(yè)編號否namevarchar100否專業(yè)名稱否short_namevarchar20否專業(yè)簡稱否academy_idint11否學院id否表4-5超級管理員(core_superadmin )表字段名稱類型長度主鍵說明允空idint11是管理員id否namevarchar10否管理員名稱否cellphonevarchar15否手機號否useridint11否用戶id否表4-6學院管理員(core_admin)表字段名稱類型長度主鍵說明允空idint11是學院管理員id否indexint11否學院管理員編號否namevarchar10否姓名否imagevarchar100否頭像否cellphonevarchar15否手機號否academy_idint11否學院否user_idint11否用戶id否字段名稱字段名稱類型長度主鍵說明允空表4-7學院教師(core」nstructor) 表字段名稱類型長度主鍵說明允空idint11是教師id否indexint11否教師編號否namevarchar10否姓名否imagevarchar100否頭像否cellphonevarchar15否手機號否specialityidint11否專業(yè)id否academyidint11否學院id否useridint11否用戶id否字段名稱類型長度主鍵說明允空idint11是學生id否indexint11否學生編號否namevarchar100否姓名否imagevarchar100否頭像否cellphonevarchar15否手機號否specialityidint11否專業(yè)id否academyidint11否學院id否useridint11否用戶id否表4-8學院學生(core_student)表表4-9論文信息(core_thesis)表字段名稱 [^型 ^度 [主鍵 ^明 允空
idint11是論文id否titlevarchar200否論文標題否contentIongtext否論文要求否statussmallint6否論文狀態(tài)否start_timedatetime6否選題開始時間否end_timedatetime6否選題結(jié)束時間否create_timedatetime6否創(chuàng)建時間否modify_timedatetime6否修改時間否academy_idint11否學院id否instructoridint11否輔導老師id否表4-10選題記錄(core_papersection )表字段名稱類型長度主鍵說明允空idint11是選題記錄id否create_timedatetime6否選中時間否modify_timedatetime6否修改時間否studentidint11否選中學生id否thesisidint11否論文id否表4-11驗證碼(coreveritycode )表字段名稱類型長度主鍵說明允空idint11是驗證碼id否emailvarchar254否目標否codevarchar32否驗證碼否code_typesmallint6否驗證碼類型否is_usedtinyint1否是否被使用否create_timedatetime6否創(chuàng)建時間否expire_timedatetime6否過期時間否user_idint11否用戶id否表4-12作品(core_paperdocuments) 表字段名稱類型長度主鍵說明允空idint11是作品id否typesmallint6否作品類型否statussmallint6否作品狀態(tài)否filevarchar100否作品路徑否upload_timedatetime6否上傳時間否modify_timedatetime6否修改時間否studentidint11否學生id否thesisidint11否論文id否4.3功能模塊實現(xiàn)4.3.1賬號管理1.登陸說明:用戶輸入用戶名,密碼,前臺對用戶輸入進行驗證,如果驗證通過后,后臺進行邏輯處理,這里采用的是框架自帶的 AuthenticationForm 進行驗證,如果用戶名和用戶名有誤,貝U直接中斷程序執(zhí)行,返回對應錯誤信息供前臺顯示。然后再根據(jù)用戶名判斷用戶屬于哪種權限,然后跳轉(zhuǎn)到相應的操作頁面。前端效果圖:本科生畢業(yè)設計管理系統(tǒng)圖4-11用戶登錄頁面url設置相當于客戶端向服務器發(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里面的代碼就是一個一個函數(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":{}}#將用戶前臺的輸入傳遞到form表單中,進行驗證。form=AuthenticationForm(request,request.POST)ifnotform.is_valid():result['msg']=u'用戶名或者密碼錯誤'returnjson_response(result)user=form.get_user()ifnotuser.is_active:result['msg']=u'該賬戶未激活,請先使用進行激活’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學HM事廉曽聘Iff配亦權繆:-nwdia>■2融字學零matfi丿*■息4機■學總nMChmt/M配■書業(yè)虐息5)iQtectraZK6eoanomy>M1cornpulw>wD圖4-12超級管理員主頁面學院管理員主頁面:圖4-13學院管理員主頁面學院老師主頁面汁■忖+學兮悅忙F審tk主衛(wèi)VR-./.-FitX■DIt文軾卓瑪畢業(yè)沖計脅氏財.r;-i!學院老師主頁面汁■忖+學兮悅忙F審tk主衛(wèi)VR-./.-FitX■DIt文軾卓瑪畢業(yè)沖計脅氏財.r;-i!中2aifir435-132ffl16-flr-01MlC7:3SQ/已IS中2014,-U13J1-05-40圖4-14學院老師主頁面學院學生主頁面:管理系統(tǒng)□°6*<tHMn梢與批牌科哇論文血Ifi 謔丈也制SjyrnhMM論丈唱E4■嗣皿業(yè)說it■耳星iftm■中寺辛黃卑阪鋌己液中Qwf囲書世黍我m百布Qyu4lXT<TFn
圖4-15學院學生主頁面2.登出:說明:用戶點擊SignOut后,后臺執(zhí)行登出操作,并跳轉(zhuǎn)到登陸頁面前臺效果圖:圖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)會通過發(fā)送重置密碼,用戶點擊后,經(jīng)過后臺驗證,可以進行重置密碼操作。后臺處理邏輯:首先后臺二次驗證前臺輸入的是否格式,如果符合格式,則會根據(jù)當前登錄的用戶和填入的,新建一條驗證碼的數(shù)據(jù)庫記錄,用戶點擊中提供的URL后跳轉(zhuǎn)到重置密碼頁面。前臺效果圖:本科生畢業(yè)設計管理系統(tǒng)圖4-17本科生畢業(yè)設計管理系統(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=『請點擊下面的激活您的賬號。此將在 24小時后失效,請您盡快完成激活。<br/>"body+=u'<ahref="%s">%s</a><br>'%(url,url)body+=u"(如果無法點擊該URL地址,請將它復制并粘帖到瀏覽器的地址輸入框,然后單擊回車即可。)"elifmail_type==VerityCodeType.FORGET_PWD:subject=u'忘記密碼'url =request.build_absolute_uri('/account/reset_pwd/?code=%s'%(code,))body=『請點擊下面的重置您的賬號密碼。 此將在24小時后失效,請您盡快完成激活。<br/>"body+=u'<ahref="%s">%s</a><br>'%(url,url)body+=u"(如果無法點擊該URL地址,請將它復制并粘帖到瀏覽器的地址輸入框,然后單擊回車即可。)"to=kwargs.get('to')#TODOfrom_email 申請一個測試,是否需要配置密碼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)重設密碼說明:當用戶收到重置的后,點擊相應的,后臺進行驗證后,進入重設密碼頁
面,如果驗證碼已經(jīng)被使用或者過期,則引發(fā) 404錯誤,跳轉(zhuǎn)到404頁面。如果驗證碼驗證通過,則可以填寫新密碼。點擊修改按鈕后,前臺 POST表單到后臺進行邏輯處理,后臺用djangoauth自帶的SetPasswordForm進行驗證,如果驗證通過,貝U返回成功信息到前臺。如果失敗,貝U彈出對應的提示。前臺效果圖:本科生畢業(yè)設計管理系統(tǒng)代碼:core/views.py@render_to('core/reset_pwd.html')defreset_pwd(request):verity_code=request.GET.get('code',”)#將請求得到的驗證碼與后臺數(shù)據(jù)庫的記錄進行比較try:vcode=VerityCode.objects.get(code=verify_code,code_type=VerityCodeType.FORGET_PWD)exceptVerityCode.DoesNotExist:raiseHttp404#判斷驗證碼是否過期ifvcode.is_usedortimezone.now()>vcode.expire_time:raiseHttp404#對use進行驗證user=authenticate(remote_user=vcode.user)withtransaction.atomic():vcode.is_used=Truevcode.save()#讓user登陸auth_login(request,user)return{}core/ajax.py#對用戶填寫的密碼,確認密碼進行后臺驗證@require_POSTdefreset_pwd(request):IIHH重置密碼:return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}user=request.user#對用戶填寫的表單進行驗證form=SetPasswordForm(user,request.POST)ifform.is_valid():form.save()else:result['msg']=u'表單填寫錯誤'returnjson_response(result)result['status']=1result['msg']=u'重置密碼成功'returnjson_response(result)修改密碼說明:用戶登錄后,可以在頁面進行修改密碼操作,需要提供舊密碼,新密碼,確認密碼,點擊提交后,表單交由后臺處理。 后臺用djangoauth自帶的PasswordChangeForm 進行驗證,如果成功,則提示成功信息,如果失敗,則提示失敗信息。前臺效果圖:圖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#對用戶提交的表單進行驗證form=PasswordChangeForm(user,request.POST)ifform.is_valid():form.save()else:result['msg']=u'表單填寫錯誤'returnjson_response(result)result['status']=1result['msg']=u'密碼修改成功'returnjson_response(result)4.3.2管理員信息管理1.新增管理員說明:第一.用戶需要填寫管理員的基本信息,點擊提交后,后臺會發(fā)送注冊到填寫的第二?用戶完善個人資料前臺對所有輸入進行校驗,保證必填項不為空,,手機等格式符合要求,否則會彈出警告框,如果無誤后,提交后臺進行邏輯處理。第三?注冊步驟完成后,用戶需要點擊中提供的,進行激活操作。前臺效果圖:
圖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表,當用戶激活后,再將user表關聯(lián)到SuperAdmin AdminInstructorStudent表:paramrequest::return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}form_email=EmailUserForm(request.POST)#當已經(jīng)存在或者格式不正確時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.刪除管理員說明:所有的刪除操作都需要二次確認。如果在代碼執(zhí)行過程中,出現(xiàn)錯誤,則任對數(shù)據(jù)庫的修改操作都會被撤銷。前臺效果圖:圖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關聯(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論文配置管理代碼:說明:學院管理員可以配置學院的論文,包括新增,修改,刪除操作所有選項均為必填項,且論文題目必須唯一。前臺效果圖:代碼:說明:學院管理員可以配置學院的論文,包括新增,修改,刪除操作所有選項均為必填項,且論文題目必須唯一。前臺效果圖:core/forms.pyfromcore.modelsimportThesisfromdjangoimportformsclassThesisForm(forms.ModelForm):classMeta:model=Thesisfields='__all__'core/ajax.py@require_POSTdefcreate_thesis(request):IIHH學院管理員新增選題:paramrequest::return:IIHHresult={"status":0,"apiVersion":"1.0","msg":"","data":{}}form=ThesisForm(request.POST)ifform.is_valid():form.save()else:result['msg']=u'表單錯誤'returnjson_response(result)result['status']=1result['msg']=u'新增成功'returnjson_response(result)4.3.4 論文選題說明:只有學生可以進行選題,并且只可以選擇本學院的論文題目,已經(jīng)被選中的題目無法再次被選中。如果選中成功后,則當前頁面進行刷新,且選中題目的狀態(tài)更改為已選中。前臺效果圖:圖4-24論文選題頁面代碼:core/forms.pyfromcore.modelimportPaperSectionclassPaperSectionForm (forms.ModelForm):classMeta:model=PaperSectionfields='__all__'core/ajax.py@require_POST@login_requireddefchoice_thesis(request):IIHH學生論文選題:paramrequest::return:IIHH#只有學生可以選題,只可以選擇本學院的題目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ā)時期最后一個階段,是保證軟件質(zhì)量的重要手段。軟件測試就是在
受控制的條件下對系統(tǒng)或應用程序進行操作并評價操作結(jié)果的過程 ,所謂控制條件應包括正常條件與非正常條件,根據(jù)需求分析階段和設計階段的相關文檔,包括功能性需求、非功能性需求多面因素考慮來設定,系統(tǒng)測試用例需要考慮的問題有功能、易用性、性能、安全等。為了保證教務管理系統(tǒng)能夠高效、穩(wěn)定的運轉(zhuǎn),在開發(fā)過程中,對軟件進行單元測試。從本質(zhì)上說,軟件測試是"探測",在"探測"中發(fā)現(xiàn)軟件的毛病。5.1單元測試單元測試也稱模塊測試或程序測試,單元測試是對每個模塊單獨進行的,驗證模塊接口與設計是否一致,基本路徑測試法就可以較好地解決這類問題。對源碼進行審查,對照設計說明書,表態(tài)地檢查源程序是否符合功能的邏輯要求,是進行單元測試前的重要工作工。一般是由程序員完成,也稱程序調(diào)試。5.2黑盒測試黑盒測試也可以稱為功能測試、數(shù)據(jù)驅(qū)動測試和基于規(guī)格說明的測試。已知產(chǎn)品的功能設計規(guī)格,可以進行測試證明每個實現(xiàn)了的功能是否符合要求首先,根據(jù)用戶需求報告中關于功能要求和性能指標的規(guī)格說明書, 定義相應的測試需求報告,即制訂黑盒測試的最高標準,以后所有的測試工作都將圍繞著測試需求來進行,符合測試需求的應用程序即是合格的,同時,還要適當選擇測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國粗面石材封蓋劑數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度政府引導的智慧園區(qū)招商引資合同
- 2025至2030年中國立體鍍金銹眉針數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度房屋買賣標準合同(含房屋租賃權優(yōu)先購買權)
- 科技創(chuàng)新推動綠色經(jīng)濟發(fā)展
- 2025年度社區(qū)車庫租賃管理合同范本(含智能監(jiān)控)
- 2025年度租賃合同到期后房屋租賃合同續(xù)簽條件解析
- 2025年度稻田土地承包經(jīng)營與農(nóng)業(yè)產(chǎn)業(yè)升級合作協(xié)議
- 煤礦購銷合同范本
- 知識經(jīng)濟時代下電影、電視節(jié)目制作中的創(chuàng)新與知識產(chǎn)權保護
- 2024年湖南交通職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 研究生導師談心談話記錄內(nèi)容范文
- 肝脾破裂的護理
- 小學機器人課題報告
- 《字體設計》課程標準
- 圖像生成中的風格遷移方法研究
- 醫(yī)療器械臨床試驗質(zhì)量管理規(guī)范培訓
- 寒假社會實踐大學生返鄉(xiāng)
- 站樁的知識講座
- 杭州園區(qū)招商規(guī)劃方案
- 【物業(yè)】《維修資金管理與使用》培訓課件
評論
0/150
提交評論