戴雯惠
摘要:隨著教育體制的不斷完善,學校教學規(guī)模日益強大,在校學生和教師的數量逐年增加,也增加了學校對教務管理的挑戰(zhàn)。因此,有必要利用新技術開發(fā)適合現代需求的教務管理系統(tǒng)。本文從使用者的角度出發(fā),使用當前流行的Python的Django框架,研究并開發(fā)一款高效的教務管理系統(tǒng),滿足師生的日常教學需求。
Abstract: With the continuous improvement of the educational system, the scale of school teaching is becoming more and more powerful, The number of students and teachers in school is increasing year by year. Increasing the school's challenge to the management of educational affairs. So, It is necessary to develop the educational administration system suitable for modern needs with new technology. This article starts from the user's point of view, using the current popular Django framework, research and develop an efficient educational administration system to meet the daily teaching needs of teachers and students.
關鍵詞:教務管理系統(tǒng);Python;MySQL數據庫
Key words: educational administration management system;Python;MySQL Data Base
中圖分類號:TP311 文獻標識碼:A 文章編號:1006-4311(2018)27-0237-03
0 引言
在新時代背景下,我國的綜合國力日益強大,主要從人民的教育事業(yè)開始,讓每個人都能接受良好的教育。在教育事業(yè)領導全國經濟發(fā)展的同時,也加重了各大院校對教務管理的負擔,不僅增加了教務管理人員的工作量,也增加了工作難度和復雜度。如果繼續(xù)采用因循守舊,照搬照抄的人工管理教務信息模式,只會加大各大院校對教務管理信息的壓力,所以一款高效的教務管理系統(tǒng)已經成為各大院校推進教育現代化的一個重要舉措。
Internet的發(fā)展使我們的教育逐步走向現代化,在網絡上進行信息管理與查詢是當今教育中的一個熱點?,F在,教師和學生之間的信息傳遞非常方便,有很多不同的途徑可以選擇,但都存在安全性與便捷性方面的問題,數據難以整合決定了數據難以共享。在管理者建立的系統(tǒng)中,數據取決于管理者的認知,相反,真正的使用者不容易掌握。由于Internet具有影響力范圍廣,傳遞信息效率高,交互性強大優(yōu)點,所以開發(fā)一個適合使用者的教務管理系統(tǒng)可以提高學校對教務信息的有效管理。本文論述的教務管理系統(tǒng)的主要目的就是取代傳統(tǒng)的教務管理系統(tǒng),簡化教師和教務管理人員的工作量,將教務管理由線下放到線上,實現各大院校網絡化的教務管理,使教務部門能更有效、更便捷地管理各院系的重大事件,使后臺管理人員及時而充分地獲取自己的工作日程、通知等,也方便學生能更高效的得到自己所需要的課程信息、成績信息,同時方便教師完成各類信息的錄入和統(tǒng)計。
1 系統(tǒng)功能需求分析
結合學院實際教務情況,教務管理系統(tǒng)的主要功能包括學生成績和課表的查詢;教師可以在系統(tǒng)中查看自身的課程分布、不同年級或者不同班級學生的基本信息以及學生相關專業(yè)的信息;后臺管理員用用所有功能權限,包括教師信息、學生信息的添加、重置用戶的注冊及登錄密碼等。結合實際,本系統(tǒng)的實現功能如下:
①成績錄入:成績信息是教務管理系統(tǒng)的核心要素之一,而成績的特點又是多而雜,既有科目的分類、涉及學生數量大、又分成各個學期。因此,讓教師的工作變得簡單是本系統(tǒng)實現的首要目標。
②課程信息的錄入:課程是教務管理系統(tǒng)中的重要部分。課表面向的是教師和學生。管理員通過教務管理系統(tǒng),可以安排班級及教師的課表,方便師生查詢。
③學院、專業(yè)及班級的添加管理:每個學校涉及多個子學院、子學院中包含多個專業(yè),專業(yè)下面對應不同的班級,理清它們之間的關系,方便對他們進行添加、刪除等各類操作。
④課表與成績的查詢:系統(tǒng)的用戶包括教師和學生。教師可以在系統(tǒng)中查詢課表;學生可以在系統(tǒng)中查詢課表和成績。
⑤權限管理:系統(tǒng)的用戶包括管理員、教師和學生。在進入系統(tǒng)后,系統(tǒng)判斷當前用戶的身份,給別給予不同的權限。其系統(tǒng)功能示意圖如圖1所示。
2 開發(fā)環(huán)境分析
本系統(tǒng)基于Python3開發(fā),首要任務是配置Python環(huán)境。Python的環(huán)境配置需要將Python的安裝包安裝完畢,并且將Python的安裝路徑添加到系統(tǒng)環(huán)境變量(Path)中。Python環(huán)境安裝好以后,需要安裝Django庫,這在Python3下需要執(zhí)行一句“pip install django”即可完成。
在開發(fā)IDE的選擇上,本系統(tǒng)選擇PyCharm,此IDE帶有一系列可以幫助用戶提高Python開發(fā)效率的功能。此外,PyCharm的一些高級功能也可以用于支持Django框架下的高效率開發(fā)。
在部署項目時,選擇直接使用服務器進行項目部署,首先要在服務器端配置好數據庫軟件和Web服務器。數據等信息存放在MySQL數據庫中。在配置Nginx時,可以方便的使用uWSGI和Nginx的配合,快速的完成服務器部署。這樣,在正式部署項目時,又可以方便的使用uWSGI實現Django的wsgi協議,從而快速完成整個項目的部署。
3 數據庫模型設計
教務管理系統(tǒng)中的角色分為教師和學生兩種身份。需要在人員表中添加一個身份字段。在數據庫模型中,一個班級對應本班級的學生,一個專業(yè)將分布不同的班級,一個學院又有多個專業(yè)。成績表和學生表表示為一對一關系,由于一個學生在各自的專業(yè)里可以有很多門課的成績, 一個學生可以對應成績課表中的多條記錄,而成績表中的額一跳記錄智能對應一個學生。由于課程分為考試課、考查課和實訓課,它們對應的字段不一樣,所以單獨建表。數據表之間的聯系,使用外鍵(Foreignkey)實現連接。教務管理系統(tǒng)的數據庫模型圖如圖2所示。
4 系統(tǒng)功能模塊設計與實現
4.1 登錄模塊
該模塊功能實現用戶在教務管理系統(tǒng)中登錄的功能,主要核心任務是將訪問者的用戶名和密碼與數據庫中的用戶名和密碼進行遍歷和比對,如果找到相符的就登錄成功,反之則登錄失敗。登錄頁面需要一個登錄表單,關鍵代碼如下:
定義好表單,就可以調用表單數據,并在視圖層進行登錄業(yè)務邏輯的編寫,核心代碼如下:
定義登陸頁面視圖層函數,判斷是否接受POST信息,如果沒有,則直接將定義好的表單類發(fā)送到模板層,并在模板層中渲染表單元素。如果接收到POST數據,表明有用戶正在試圖登錄,首先讀取POST數據,并嘗試驗證能否得到一個用戶對象,如果得不到則表示登錄失敗,若得到的user不為None,則登錄成功,并跳轉至“/info”頁面。其功能界面如圖3所示。
4.2 登錄狀態(tài)權限控制
教務管理系統(tǒng)的用戶由學生、教師和管理員,即為多種用戶,必須考慮登錄狀態(tài)問題,登錄與否分別對應不同的權限。權限控制的第一步是判斷是否登錄并返回不同的權限頁面,這是全局的,所以利用Django的中間件實現,關鍵代碼如下:
這里定義一個DaasAuthenticationMiddleware類來控制登錄后的行為,登錄后半段當前用戶是否燈具,如果登錄則直接跳轉到“/info”頁面,即首頁。如果發(fā)現未登錄用戶嘗試訪問“/info”頁面,則直接跳轉至登錄頁面。
4.3 成績管理模塊
在教務管理系統(tǒng)中,成績是教務管理系統(tǒng)的核心數據之一。在本系統(tǒng)中,成績類型分為三種,分別是考試課成績、考查課成績和實訓課成績,其中考查課成績和考試課成績在數據庫中的字段一致,但期末總評成績的測算方法不一致(考試課程的總評成績=平時成績*0.3+期末成績*0.7,考查課程的總評成績=平時成績*0.4+期末成績*0.6),實訓課程需要一個等第(rank)字段表示。因此,將三種不同類型的成績表分別放在三張數據表中。每一條成績的記錄都和用戶是一對一的關系,當需要查詢某學生的考試課成績信息時,只需要查詢到考試課表中用戶字段為這個學生的記錄即可。
成績的導入是教師需要完成的主要工作之一。本系統(tǒng)中采用一系列的下拉框,可以精確定位到哪個學院哪個專業(yè)哪門課程,這些操作通過AJAX異步加載完成,無需刷新整個頁面。系統(tǒng)自動生成一個表單,將這個班級所有學生的姓名與學號填入表中。教師只需要輸入對應分值,總評成績由系統(tǒng)自動計算得出結果。教師在后臺進行對學生成績的添加,學生則可以登錄系統(tǒng)查詢自己的考試成績。
4.4 課表查詢模塊
課表查詢即為當前用戶顯示一周課程信息,也可以在課表右上角顯示的下拉列表框中選擇對應的學期以便查詢該用戶以往學期的課程信息。課表設計為一張HTML中的table表格。教務管理系統(tǒng)的課表查詢頁面如圖4所示。
4.5 學院、專業(yè)、班級管理模塊
教務管理系統(tǒng)中,學院、專業(yè)和班級的管理模塊功能類似,主要實現記錄的添加、修改和刪除操作。界面分為3列,分別為學院、專業(yè)和班級,當選擇學院以后,會分別在第二列和第三列自動顯示當前學院開設的專業(yè)和班級,教務管理系統(tǒng)中的學院、專業(yè)和班級管理界面如圖5所示。
5 總結
高校教務管理系統(tǒng)的根本目的是通過系統(tǒng)服務于廣大教師和學生,為用戶提供經過整合和加工的信息,并清晰的展現給用戶。提高學校對教務管理效率,從而更好地促進開發(fā)者和使用者之間的交流。本文從教務管理系統(tǒng)的設計目標出發(fā),詳細闡述了使用Phthon和MySQL相結合的開發(fā)思路,均使用PyCharm工具進行代碼編寫,最大限度地提高了開發(fā)效率和代碼質量,實現高校教務管理系統(tǒng)的主要功能。
參考文獻:
[1]Swaroop,C.H. 簡明Python教程[M].2005.
[2]Django documentation https://docs.djangoproject.com/en/1.10/.
[3]SegmentFault社區(qū) https://segmentfault.com/.
[4]Magnus Lie Hetland. Python基礎教程[M].人民郵電出版社,2010.
[5]Jeff Forcier,Paul Bissex. Django Web開發(fā)指南[M].機械工業(yè)出版社,2009.