時間:2018年10月09日 分類:科學技術論文 次數:
下面文章主要從使用者的角度出發,使用當前流行的Python的Django框架,研究并開發一款高效的教務管理系統,滿足師生的日常教學需求。本文中研究的教務管理系統的主要目的就是取代傳統的教務管理系統,簡化教師和教務管理人員的工作量,將教務管理由線下放到線上,實現各大院校網絡化的教務管理,使教務部門能更有效、更便捷地管理各院系的重大事件,提高教務管理效率。
關鍵詞:教務管理系統,Python,MySQL數據庫
在新時代背景下,我國的綜合國力日益強大,主要從人民的教育事業開始,讓每個人都能接受良好的教育。在教育事業領導全國經濟發展的同時,也加重了各大院校對教務管理的負擔,不僅增加了教務管理人員的工作量,也增加了工作難度和復雜度。如果繼續采用因循守舊,照搬照抄的人工管理教務信息模式,只會加大各大院校對教務管理信息的壓力,所以一款高效的教務管理系統已經成為各大院校推進教育現代化的一個重要舉措。
Internet的發展使我們的教育逐步走向現代化,在網絡上進行信息管理與查詢是當今教育中的一個熱點,F在,教師和學生之間的信息傳遞非常方便,有很多不同的途徑可以選擇,但都存在安全性與便捷性方面的問題,數據難以整合決定了數據難以共享。在管理者建立的系統中,數據取決于管理者的認知,相反,真正的使用者不容易掌握。由于Internet具有影響力范圍廣,傳遞信息效率高,交互性強大優點,所以開發一個適合使用者的教務管理系統可以提高學校對教務信息的有效管理。
1系統功能需求分析
結合學院實際教務情況,教務管理系統的主要功能包括學生成績和課表的查詢;教師可以在系統中查看自身的課程分布、不同年級或者不同班級學生的基本信息以及學生相關專業的信息;后臺管理員用用所有功能權限,包括教師信息、學生信息的添加、重置用戶的注冊及登錄密碼等。結合實際,本系統的實現功能如下:
①成績錄入:成績信息是教務管理系統的核心要素之一,而成績的特點又是多而雜,既有科目的分類、涉及學生數量大、又分成各個學期。因此,讓教師的工作變得簡單是本系統實現的首要目標。
②課程信息的錄入:課程是教務管理系統中的重要部分。課表面向的是教師和學生。管理員通過教務管理系統,可以安排班級及教師的課表,方便師生查詢。
、蹖W院、專業及班級的添加管理:每個學校涉及多個子學院、子學院中包含多個專業,專業下面對應不同的班級,理清它們之間的關系,方便對他們進行添加、刪除等各類操作。
、苷n表與成績的查詢:系統的用戶包括教師和學生。教師可以在系統中查詢課表;學生可以在系統中查詢課表和成績。
⑤權限管理:系統的用戶包括管理員、教師和學生。在進入系統后,系統判斷當前用戶的身份,給別給予不同的權限。
2開發環境分析
本系統基于Python3開發,首要任務是配置Python環境。Python的環境配置需要將Python的安裝包安裝完畢,并且將Python的安裝路徑添加到系統環境變量(Path)中。Python環境安裝好以后,需要安裝Django庫,這在Python3下需要執行一句“pipinstalldjango”即可完成。在開發IDE的選擇上,本系統選擇PyCharm,此IDE帶有一系列可以幫助用戶提高Python開發效率的功能。
此外,PyCharm的一些高級功能也可以用于支持Django框架下的高效率開發。在部署項目時,選擇直接使用服務器進行項目部署,首先要在服務器端配置好數據庫軟件和Web服務器。數據等信息存放在MySQL數據庫中。在配置Nginx時,可以方便的使用uWSGI和Nginx的配合,快速的完成服務器部署。這樣,在正式部署項目時,又可以方便的使用uWSGI實現Django的wsgi協議,從而快速完成整個項目的部署。
3數據庫模型設計
教務管理系統中的角色分為教師和學生兩種身份。需要在人員表中添加一個身份字段。在數據庫模型中,一個班級對應本班級的學生,一個專業將分布不同的班級,一個學院又有多個專業。成績表和學生表表示為一對一關系,由于一個學生在各自的專業里可以有很多門課的成績,一個學生可以對應成績課表中的多條記錄,而成績表中的額一跳記錄智能對應一個學生。由于課程分為考試課、考查課和實訓課,它們對應的字段不一樣,所以單獨建表。數據表之間的聯系,使用外鍵(Foreignkey)實現連接。
4系統功能模塊設計與實現
4.1登錄模塊
該模塊功能實現用戶在教務管理系統中登錄的功能,主要核心任務是將訪問者的用戶名和密碼與數據庫中的用戶名和密碼進行遍歷和比對,如果找到相符的就登錄成功,反之則登錄失敗。
4.2登錄狀態權限控制
教務管理系統的用戶由學生、教師和管理員,即為多種用戶,必須考慮登錄狀態問題,登錄與否分別對應不同的權限。權限控制的第一步是判斷是否登錄并返回不同的權限頁面,這是全局的,所以利用Django的中間件實現。
4.3成績管理模塊
在教務管理系統中,成績是教務管理系統的核心數據之一。在本系統中,成績類型分為三種,分別是考試課成績、考查課成績和實訓課成績,其中考查課成績和考試課成績在數據庫中的字段一致,但期末總評成績的測算方法不一致(考試課程的總評成績=平時成績*0.3+期末成績*0.7,考查課程的總評成績=平時成績*0.4+期末成績*0.6),實訓課程需要一個等第(rank)字段表示。因此,將三種不同類型的成績表分別放在三張數據表中。
每一條成績的記錄都和用戶是一對一的關系,當需要查詢某學生的考試課成績信息時,只需要查詢到考試課表中用戶字段為這個學生的記錄即可。成績的導入是教師需要完成的主要工作之一。本系統中采用一系列的下拉框,可以精確定位到哪個學院哪個專業哪門課程,這些操作通過AJAX異步加載完成,無需刷新整個頁面。
系統自動生成一個表單,將這個班級所有學生的姓名與學號填入表中。教師只需要輸入對應分值,總評成績由系統自動計算得出結果。教師在后臺進行對學生成績的添加,學生則可以登錄系統查詢自己的考試成績。
4.4課表查詢模塊
課表查詢即為當前用戶顯示一周課程信息,也可以在課表右上角顯示的下拉列表框中選擇對應的學期以便查詢該用戶以往學期的課程信息。課表設計為一張HTML中的table表格。
4.5學院、專業、班級管理模塊
教務管理系統中,學院、專業和班級的管理模塊功能類似,主要實現記錄的添加、修改和刪除操作。界面分為3列,分別為學院、專業和班級,當選擇學院以后,會分別在第二列和第三列自動顯示當前學院開設的專業和班級。
5總結
高校教務管理系統的根本目的是通過系統服務于廣大教師和學生,為用戶提供經過整合和加工的信息,并清晰的展現給用戶。提高學校對教務管理效率,從而更好地促進開發者和使用者之間的交流。本文從教務管理系統的設計目標出發,詳細闡述了使用Phthon和MySQL相結合的開發思路,均使用PyCharm工具進行代碼編寫,最大限度地提高了開發效率和代碼質量,實現高校教務管理系統的主要功能。
參考文獻:
[1]Swaroop,C.H.簡明Python教程[M].2005.
[2]Djangodocumentationhttps://docs.djangoproject.com/en/1.10/.
[3]SegmentFault社區https://segmentfault.com/.[4]MagnusLieHetland.Python基礎教程[M].人民郵電出版社,2010.
[5]JeffForcier,PaulBissex.DjangoWeb開發指南[M].機械工業出版社,2009.
推薦期刊:《電腦編程技巧與維護》本刊自1994年創刊以來,始終以“實用第一,智慧密集”為宗旨,為廣大電腦編輯愛好者、專業計算機系統維護人員和軟件開發人員提供第一手的技術資料和編程維護技術,在業內獲得一致好評,是廣大編程和維護人員的首選刊物。