康耀龍 張景安 馮麗露
(1.山西大同大學(xué)計算機(jī)與網(wǎng)絡(luò)工程學(xué)院 山西省大同市 037009 2.山西大同大學(xué)網(wǎng)絡(luò)信息中心 山西省大同市 037009)
(3.山西大同大學(xué)教育科學(xué)與技術(shù)學(xué)院 山西省大同市 037009)
高校校園人口密集,經(jīng)常會有同學(xué)和教師遺失課本、鑰匙、準(zhǔn)考證、U 盤、雨傘以及錢包等物品的現(xiàn)象。失主丟失了物品往往苦于難尋,尋找的方式雖有多種,有的借助朋友圈,有的在校園廣播站進(jìn)行廣播,有的校園里也有規(guī)范的失物招領(lǐng)處,但物品想要及時歸還給失主還是多有不便。隨著移動網(wǎng)絡(luò)的發(fā)展,APP 的應(yīng)用越來越廣泛[1,2],校園失物招領(lǐng)APP 簡化了失物招領(lǐng)信息的發(fā)布和瀏覽,提高了失物的找回率,提升了校園生活的便捷性。
教師和學(xué)生在校園里丟失物品,首先要有發(fā)布功能模塊,其次,他們可以通過瀏覽頁面找尋信息,就需要瀏覽功能模塊,如果要瀏覽指定的信息,這里就要有搜索功能模塊,如果想進(jìn)行評論,就要有評論功能模塊。還有就是基本功能模塊,這里有注冊、登錄、注銷、密碼的修改等。失物招領(lǐng)系統(tǒng)使用者一類是管理員,一類是用戶,用戶包括教師和學(xué)生。
本系統(tǒng)采用的是Django 框架,Django 是一個開放源代碼的應(yīng)用框架,由Python 寫成[3]。Django 框架包含了開發(fā)中的一些組件,這樣使用這個框架進(jìn)行開發(fā)的話,我們就可以把時間多放在我們的邏輯上面。例如,登錄時候的驗(yàn)證、URL 的分發(fā)、模板系統(tǒng)、對象關(guān)系映射(ORM)和數(shù)據(jù)庫遷移等功能都已包含在Django 框架中。Django 使用的是MTV 模式架構(gòu)。Django 框架模式如圖1所示。
該系統(tǒng)是基于B/S 架構(gòu),分為三層,分別是前端、后端、數(shù)據(jù)庫。前端包括Html、CSS 等,后端是使用python 語言和Django 框架進(jìn)行相關(guān)邏輯功能的實(shí)現(xiàn)。數(shù)據(jù)庫是采用了MySQL 數(shù)據(jù)庫,使用ORM 進(jìn)行數(shù)據(jù)的更新和查找。經(jīng)過前期需求分析,確定該APP主要有9 個功能模塊,分別為注冊模塊、登錄模塊、失物招領(lǐng)信息瀏覽、失物招領(lǐng)信息篩選、尋物信息發(fā)布、招領(lǐng)信息發(fā)布、失物信息的評論、用戶注銷和密碼修改、信息的審核。
該系統(tǒng)采用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)MySQL[4],其體積小、速度快、總體擁有成本低[5],本系統(tǒng)中的表有用戶表、尋物表、招領(lǐng)表、評論表、地點(diǎn)表、物品類型表。該系統(tǒng)的數(shù)據(jù)表如表1所示。
用戶表(UserProfile):用戶和管理員共用的一個表,用來存儲基本信息。其中主鍵為id 唯一標(biāo)識一條記錄、password 存儲的是經(jīng)過加密處理后的密碼、Is_staff 用于判斷該用戶是否可以登錄到后臺。
圖1:Django 框架模式
尋物表(Seek):用來存儲發(fā)布的尋物信息。title 字段用于顯示主要的信息和模糊查詢、pub_time 用于對尋物信息進(jìn)行排序、lost_time 用于精確查詢的條件進(jìn)行篩選、status 用于管理員的審核。
評論表(Comments):用來記錄用戶在某一尋物信息下的評論,author 記錄的是用戶名、content 記錄的是用戶發(fā)表的評論內(nèi)容、comment_msg_id 記錄的是在某一條尋物信息下發(fā)表的評論。
該系統(tǒng)是基于B/S 架構(gòu),分為三層,分別是前端、后端、數(shù)據(jù)庫。前端包括Html、CSS 等,后端是使用Python 語言和Django 框架進(jìn)行相關(guān)邏輯功能的實(shí)現(xiàn)。數(shù)據(jù)庫是采用了MySQL 數(shù)據(jù)庫,使用ORM 進(jìn)行數(shù)據(jù)的更新和查找。其中數(shù)據(jù)庫在setting.py 中進(jìn)行配置;wsgi.py 是一個基于WSGI 的服務(wù)站點(diǎn);urls.py 是負(fù)責(zé)把URL映射到應(yīng)用程序;名字為SWZL 的App 負(fù)責(zé)后臺功能的實(shí)現(xiàn)。
注冊頁面的入口是在登錄頁面中,注冊模塊中的form 表單樣式是使用了框架中的樣式。用戶需要填寫用戶名、密碼、確認(rèn)密碼、學(xué)號、名字信息,然后進(jìn)行注冊。
表1:數(shù)據(jù)表
用戶如果登錄成功后在對應(yīng)的views 視圖函數(shù)中調(diào)用Django框架自帶的認(rèn)證系統(tǒng)把用戶登錄的信息在后端生成相關(guān)的session數(shù)據(jù)。之后會返回到首頁頁面,由模板渲染顯示。
用戶名和密碼的匹配使用了auth 組件,核心代碼如下:
失物招領(lǐng)模塊分為失物招領(lǐng)信息的瀏覽和失物招領(lǐng)信息的篩選。失物招領(lǐng)信息的瀏覽和篩選不需要用戶進(jìn)行登錄,用戶以瀏覽的方式可以查看網(wǎng)站上的失物信息,失物招領(lǐng)信息的篩選用來幫助用戶進(jìn)行多余信息的快速過濾,幫助用戶找到自己需要的失物信息,縮短了用戶在查找信息過程中的時間,提高了查找效率。
views 視圖核心代碼如下:
尋物信息模塊用于用戶進(jìn)行發(fā)布尋物信息,只有用戶登陸了才能進(jìn)行發(fā)布,否則會跳到登錄界面要求登錄。用戶點(diǎn)擊發(fā)布尋物信息,會跳轉(zhuǎn)至一個表單頁面,通過填寫表單進(jìn)行信息發(fā)布。用戶發(fā)布成功后信息處于非審核狀態(tài),需要管理員進(jìn)行審核才能被用戶瀏覽到。另外,還設(shè)計了尋物信息的評論功能,評論可以幫助發(fā)布者了解到丟失物品的信息,提高了找失物的效率,有利于信息的快速散布,大大提高找到失物的幾率。頁面有評論輸入框來支持用戶的輸入,然后進(jìn)行發(fā)布。
用戶發(fā)布了失物招領(lǐng)信息,發(fā)布成功后,并不能立即在瀏覽頁面看到這條信息,需要管理員進(jìn)行審核。管理員登錄后臺對未審核的信息進(jìn)行查看,把它們的狀態(tài)改為已審核,則用戶才能查看到發(fā)布的信息。
本系統(tǒng)使用的Django 開發(fā)框架模式,通過MySQL 數(shù)據(jù)庫管理后臺數(shù)據(jù)信息。失物招領(lǐng)APP 圍繞五個方面,設(shè)計并實(shí)現(xiàn)了用戶注冊、用戶登錄、失物招領(lǐng)信息瀏覽、失物招領(lǐng)信息篩選、尋物信息發(fā)布、招領(lǐng)信息發(fā)布、失物信息評論、用戶的注銷和密碼的修改、后臺信息的審核9 個具體功能。為校園用戶提供了一個操作簡便、瀏覽快捷的移動式“失物招領(lǐng)處”,該APP 的開發(fā)為全方位提升校園科技服務(wù)提供了更多技術(shù)借鑒。