董向偉 李博 張金美
摘 要:在信息化大環(huán)境的推動(dòng)下,傳統(tǒng)體能測(cè)試的統(tǒng)計(jì)管理方式已顯煩瑣,相關(guān)系統(tǒng)管理軟件亟待開發(fā)。本文提出了一套體能測(cè)試管理系統(tǒng)的設(shè)計(jì)方案,該系統(tǒng)開發(fā)主要使用Python語(yǔ)言,Web框架選用Django框架。該體能測(cè)試管理系統(tǒng)具有較強(qiáng)的實(shí)用性與較高的推廣價(jià)值,能在學(xué)校全面推廣使用。
關(guān)鍵詞:體能測(cè)試成績(jī)管理系統(tǒng);Python;Django架構(gòu);管理后臺(tái)
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-5168(2019)04-0024-02
Design of Physical Fitness Test Management System
DONG Xiangwei LI Bo ZHANG Jinmei
(School of Electronic Engineering, Huai’an College of Information Technology,Huai’an Jiangsu 223003)
Abstract: Promoted by the information environment, the traditional statistical management of physical fitness testing has become cumbersome, and the related system management software needs to be developed urgently. In this paper, a design scheme of physical fitness test management system was proposed. The system is mainly developed in Python language, and the Django framework is chosen as the Web framework. It has strong practicability and high popularization value, and can be widely used in schools.
Keywords: physical performance management system;Python;Django architecture;management background
在傳統(tǒng)的體育教學(xué)過程中,跑步測(cè)試時(shí),體育教師會(huì)拿出若干個(gè)碼表分別對(duì)參跑的進(jìn)行學(xué)生一對(duì)一計(jì)時(shí),然后將計(jì)時(shí)結(jié)果在成績(jī)表中逐一登記。該過程煩瑣且工作量巨大,同時(shí)也會(huì)因?yàn)槿藶槭韬鰧?dǎo)致計(jì)時(shí)錯(cuò)誤或記錄錯(cuò)誤,從而影響學(xué)生的最終成績(jī)[1]。在大力推廣物聯(lián)網(wǎng)技術(shù)的背景下,本文結(jié)合Android技術(shù)所支持的測(cè)跑APP,設(shè)計(jì)了一套自動(dòng)統(tǒng)計(jì)學(xué)生跑步成績(jī)的管理后臺(tái)系統(tǒng),該系統(tǒng)具有即時(shí)評(píng)分、快速統(tǒng)計(jì)成績(jī)的功能,方便、快捷且不易出錯(cuò)。
1 開發(fā)工具及關(guān)鍵技術(shù)
1.1 開發(fā)工具
代碼編譯工具:JetBrains PyCharm 2018.2.4;數(shù)據(jù)庫(kù)圖形化工具:Navicat for MySql10.1.7;服務(wù)器端運(yùn)行環(huán)境:Linux;軟件環(huán)境:Python2.7.14、Django1.8.3、Mysql5.7。
1.2 關(guān)鍵技術(shù)
1.2.1 Web前端。HTML是網(wǎng)頁(yè)的核心,HTML5作為HTML的最新版本,引入了多項(xiàng)新技術(shù),可以使開發(fā)者的工作大大簡(jiǎn)化;CSS是網(wǎng)頁(yè)外觀;JavaScript是一種解釋性腳本語(yǔ)言,主要用來向HTML頁(yè)面添加交互行為,完成前端和后端的數(shù)據(jù)交互等。
前端框架選用Bootstrap。Bootstrap主要基于HTML、CSS、JavaScript,其簡(jiǎn)潔靈活,使得Web開發(fā)更加快捷
1.2.2 Web后端。Python是一種動(dòng)態(tài)的、面向?qū)ο蟮哪_本語(yǔ)言,隨著版本的更新及語(yǔ)言功能的不斷增加,現(xiàn)已逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程系統(tǒng)設(shè)計(jì)。
Web框架選用Django。Django是一個(gè)開放源代碼的Web應(yīng)用框架,由Python寫成,采用MVC的框架模式,即模型M,視圖V和控制器C。
2 系統(tǒng)需求
對(duì)參與體能測(cè)試的學(xué)生來說,其希望系統(tǒng)的管理員能及時(shí)發(fā)布公告,從而根據(jù)自己的情況選擇合適的時(shí)間進(jìn)行預(yù)約考試,測(cè)試完成后能及時(shí)查看自己的測(cè)試成績(jī),并根據(jù)成績(jī)測(cè)試分析找出不足,對(duì)癥進(jìn)行專項(xiàng)訓(xùn)練;對(duì)管理者來說,其希望能實(shí)時(shí)統(tǒng)計(jì)學(xué)生的成績(jī),并進(jìn)行自動(dòng)分析,生成評(píng)價(jià)圖。
3 系統(tǒng)設(shè)計(jì)
3.1 功能設(shè)計(jì)
根據(jù)系統(tǒng)的特點(diǎn),可以將管理系統(tǒng)分為管理員模塊、普通教師模塊、反饋信息模塊三大部分進(jìn)行設(shè)計(jì)[2,3]。管理員模塊主要用于對(duì)各個(gè)系統(tǒng)進(jìn)行管理與維護(hù),管理員有權(quán)限進(jìn)行用戶管理、成績(jī)管理、反饋信息處理等;普通教師模塊主要用于普通教師對(duì)學(xué)生成績(jī)的查詢及點(diǎn)評(píng)等操作;反饋模塊主要是對(duì)極端問題進(jìn)行處理,如違紀(jì)學(xué)生處理、誤操作等情況的撤除等。
3.2 后端服務(wù)設(shè)計(jì)
參跑人員攜帶手機(jī)打開指定APP開始跑步后,結(jié)束時(shí)數(shù)據(jù)會(huì)自動(dòng)存儲(chǔ)到數(shù)據(jù)庫(kù)。后端服務(wù)的主要功能是數(shù)據(jù)統(tǒng)計(jì)與分析[4]。后端主要有一個(gè)data服務(wù),該服務(wù)為系統(tǒng)提供學(xué)生參測(cè)的具體信息,服務(wù)主要接口有CheckUser(self,userid)獲取管理者的信息(管理員/普通教師)、GetDataByStudentid(self, studentid)獲取學(xué)生參測(cè)信息、GetDataByClassid(self, classid)獲取班級(jí)參測(cè)信息、GettInfoByClassid(self, classid)獲取班級(jí)參測(cè)詳情等。
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
本管理系統(tǒng),數(shù)據(jù)庫(kù)選用MySQL,數(shù)據(jù)庫(kù)名為runningtest,庫(kù)中主要有兩個(gè)數(shù)據(jù)信息表,分別為個(gè)人信息表和跑步數(shù)據(jù)表。以個(gè)人信息表(user)為例進(jìn)行說明,user表主要字段信息如表1所示。
Django提供了一個(gè)抽象層(Model)來構(gòu)建和管理Web應(yīng)用程序的數(shù)據(jù)[5]。Django中遵循Code Frist的原則,即根據(jù)代碼中定義的類來自動(dòng)生成數(shù)據(jù)庫(kù)表。例如,數(shù)據(jù)庫(kù)中表user中存放所有用戶信息,其models.py中生成的表結(jié)構(gòu)信息為:
class User(models.Model):
userid = models.IntegerField(primary_key=True)
user_name = models.CharField(max_length=12L)
passwd = models.CharField(max_length=32L)
modify_time=models.CharField(max_length=32L, blank=True)
login_time=models.CharField(max_length=32L, blank=True)
class Meta:
db_table = 'user'
使用數(shù)據(jù)庫(kù)的關(guān)系對(duì)象映射,擺脫了復(fù)雜的SQL操作,數(shù)據(jù)結(jié)構(gòu)變得簡(jiǎn)潔。例如,登錄系統(tǒng)中輸入用戶名后需要在數(shù)據(jù)庫(kù)中查詢密碼時(shí),代碼為passwd=User.objects.filter(user_name=username).values('passd')[0],這樣就不需要再去和復(fù)雜的SQL語(yǔ)句打交道。
3.4 服務(wù)運(yùn)行維護(hù)設(shè)計(jì)
本服務(wù)部署在Linux系統(tǒng)中,選用Nginx作為服務(wù),其主要優(yōu)點(diǎn)體現(xiàn)在:①Nginx配置簡(jiǎn)潔(Apache和Tomcat都比較復(fù)雜);②Nginx處理靜態(tài)文件好,耗費(fèi)內(nèi)存少;③Nginx適合做前端服務(wù)器,負(fù)載性能良好;④Nginx本身就是一個(gè)反向代理服務(wù)器,且支持負(fù)載均衡[6]。
4 結(jié)語(yǔ)
Web程序的開發(fā)大約分4個(gè)層次,即表現(xiàn)層(Represent Layer)、控制層Logic control layer)、邏輯層(Service Layer)、數(shù)據(jù)存儲(chǔ)層(Persistent Layer)。在開發(fā)過程中,要充分考慮項(xiàng)目的部署、移植、性能和代碼可重用性等。
參考文獻(xiàn):
[1]張弛.基于運(yùn)動(dòng)訓(xùn)練學(xué)視角的招警考試體能測(cè)試培訓(xùn)現(xiàn)狀研究[D].臨汾:山西師范大學(xué),2017.
[2]鄧慧.考試后臺(tái)管理系統(tǒng)[D].青島:青島科技大學(xué),2018.
[3]王靜.高校一卡通體育教學(xué)管理系統(tǒng)設(shè)計(jì)[J].微型電腦應(yīng)用,2018(4):57-58,75.
[4]雷曉薇.基于Django框架的教學(xué)管理系統(tǒng)的研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2018(18):39-43,48.
[5]楊武帥,萬(wàn)啟元,桑賢伯.基于Python和Django框架的物聯(lián)網(wǎng)智能設(shè)備管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)新技術(shù)新產(chǎn)品,2018(11):13-15.
[6]杜艷美.基于web前端的性能優(yōu)化框架模型研究[D].綿陽(yáng):西南科技大學(xué),2018.