張翠麗,孟小艷,楊 抒
(新疆農(nóng)業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,新疆 烏魯木齊 830052)
隨著信息技術(shù)的飛速發(fā)展,人類社會(huì)正在從工業(yè)社會(huì)向信息社會(huì)邁進(jìn)。信息化是當(dāng)今世界發(fā)展的必然趨勢,信息技術(shù)的發(fā)展也極大地推動(dòng)了經(jīng)濟(jì)的發(fā)展,并將會(huì)對(duì)新世紀(jì)全球的經(jīng)濟(jì)產(chǎn)生深遠(yuǎn)的影響[1-2]。同時(shí)隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展,很多地區(qū)的特色產(chǎn)業(yè)跟不上時(shí)代的步伐,發(fā)展受到極大的限制,地區(qū)的經(jīng)濟(jì)發(fā)展也受到極大的影響。因此,將信息技術(shù)與特色產(chǎn)業(yè)相結(jié)合成為了有效推動(dòng)產(chǎn)業(yè)發(fā)展,帶動(dòng)地區(qū)經(jīng)濟(jì)發(fā)展的重要途徑之一。文中以新疆昭蘇地區(qū)的馬產(chǎn)業(yè)發(fā)展為例,采用Django網(wǎng)頁開發(fā)框架、Bootstrap響應(yīng)式網(wǎng)頁開發(fā)技術(shù)以及Python系統(tǒng)開發(fā)語言,設(shè)計(jì)開發(fā)了一款競拍管理系統(tǒng),以解決昭蘇傳統(tǒng)馬產(chǎn)業(yè)競拍流程中的難題。系統(tǒng)以新疆昭蘇馬產(chǎn)業(yè)為例設(shè)計(jì),框架合理,遷移性強(qiáng),可推廣在其他地區(qū)的特色產(chǎn)業(yè)中應(yīng)用,有一定的實(shí)用價(jià)值與經(jīng)濟(jì)效益。
從經(jīng)濟(jì)可行性角度分析,該系統(tǒng)是將信息技術(shù)與特色產(chǎn)業(yè)結(jié)合推動(dòng)特色產(chǎn)業(yè)的發(fā)展,帶動(dòng)地區(qū)的經(jīng)濟(jì)進(jìn)步,具有較高的經(jīng)濟(jì)效益和社會(huì)效益,并且系統(tǒng)的維護(hù)費(fèi)用低,經(jīng)濟(jì)可行性較高。
從技術(shù)可行性角度來看,Django框架、Bootstrap響應(yīng)式網(wǎng)頁開發(fā)技術(shù)和Python語言發(fā)展至今已高度成熟,技術(shù)難度低,風(fēng)險(xiǎn)小。
從系統(tǒng)的功能需求角度分析看,在競拍業(yè)務(wù)中,商品信息、競拍信息(競拍的起始時(shí)間、結(jié)束時(shí)間等)、訂單信息以及用戶信息是必不可少的。因此競拍管理系統(tǒng)功能模塊需有商品管理功能、訂單管理功能、競拍信息管理功能以及用戶管理功能。除此之外,圖片的使用是建設(shè)一個(gè)完善且美觀的系統(tǒng)的關(guān)鍵,為保證系統(tǒng)界面的美觀,需要對(duì)圖片尺寸大小做合理設(shè)定,圖片管理功能自然是必須的。具體的需求分析如下:
(1)商品管理功能。
商品管理功能主要是用于對(duì)商品(該系統(tǒng)指馬匹)的屬性信息進(jìn)行管理。商品的屬性信息指的是馬匹名稱、馬匹主人、馬匹價(jià)格、馬匹描述等。
(2)競拍管理功能。
競拍管理功能主要是用于對(duì)競拍過程中的信息進(jìn)行管理。競拍過程中的主要信息有商品、競拍時(shí)間段、起拍價(jià)、加價(jià)幅度、保證金金額、傭金金額、延時(shí)周期、保留價(jià)等,其中商品即指商品管理功能中已添加存儲(chǔ)的馬匹。
(3)訂單管理功能。
訂單管理功能是對(duì)訂單信息進(jìn)行管理,包括生成訂單號(hào)、訂單狀態(tài)、收貨人姓名、收貨人詳細(xì)地址、收貨人手機(jī)等。
(4)用戶管理功能。
用戶管理功能是對(duì)用戶信息(主要包含電子郵箱、聯(lián)系方式、城市、地址以及賬戶狀態(tài)等)進(jìn)行管理。
(5)圖片管理功能。
圖片管理功能主要用于對(duì)系統(tǒng)界面中使用的輪播圖和添加的馬匹圖片的大小和分辨率進(jìn)行管理,做具體的設(shè)定。
從系統(tǒng)的非功能需求角度分析看,還應(yīng)滿足頁面設(shè)計(jì)合理,系統(tǒng)實(shí)用等需求。
前期在新疆昭蘇地區(qū)多個(gè)馬場進(jìn)行了多次的實(shí)地調(diào)研與需求分析,設(shè)計(jì)出該系統(tǒng)的架構(gòu),如圖1所示。
圖1 系統(tǒng)架構(gòu)
由圖1可知,系統(tǒng)的第一層是表現(xiàn)層即為用戶在瀏覽器上看到的頁面,在這一層用戶可以進(jìn)行相應(yīng)的操作進(jìn)行實(shí)時(shí)的數(shù)據(jù)管理。第二層是業(yè)務(wù)邏輯層,即為服務(wù)器層,通常在進(jìn)行系統(tǒng)的設(shè)計(jì)與開發(fā)時(shí)一般都是在本地機(jī)上,但最終應(yīng)用時(shí)需要一個(gè)服務(wù)器,把寫好的程序部署到服務(wù)器上,這樣即便不在本地機(jī)上,只要知道服務(wù)器的地址就可以登錄系統(tǒng)執(zhí)行相應(yīng)的操作。第三層是數(shù)據(jù)存儲(chǔ)層,把數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,便于管理與使用。
通過對(duì)一些常用管理系統(tǒng)和競拍平臺(tái)的設(shè)計(jì)理論進(jìn)行深入研究和對(duì)系統(tǒng)架構(gòu)圖進(jìn)行深入分析,設(shè)計(jì)出系統(tǒng)的功能結(jié)構(gòu),如圖2所示。
圖2 系統(tǒng)的功能結(jié)構(gòu)
從圖2可看出,該系統(tǒng)具備多項(xiàng)功能,主要有商品管理、競拍管理以及訂單管理等5個(gè)二級(jí)模塊,每一個(gè)二級(jí)模塊下面還包含各自的子功能共20個(gè)。這些功能涵蓋了競拍流程的各項(xiàng)數(shù)據(jù),它們的實(shí)現(xiàn)能夠推動(dòng)產(chǎn)業(yè)主體的線上競拍,例如新疆昭蘇馬產(chǎn)業(yè)中的馬匹實(shí)例,該系統(tǒng)的實(shí)現(xiàn)對(duì)馬匹的線上競拍帶來了便利并能夠通過線上競拍加強(qiáng)昭蘇馬產(chǎn)業(yè)的宣傳度,同時(shí)也能夠更好地對(duì)競拍數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢,減少大量人力工作。
系統(tǒng)設(shè)計(jì)階段的數(shù)據(jù)庫設(shè)計(jì)是以系統(tǒng)設(shè)計(jì)的功能模塊、功能包含的數(shù)據(jù)屬性以及功能間的聯(lián)系設(shè)計(jì)的。數(shù)據(jù)庫是管理信息系統(tǒng)中最為核心的部分,數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)好壞將直接影響應(yīng)用系統(tǒng)的工作效率和實(shí)現(xiàn)的效果。數(shù)據(jù)庫設(shè)計(jì)一般包含:數(shù)據(jù)庫邏輯設(shè)計(jì)和數(shù)據(jù)庫物理設(shè)計(jì)[3-4]。
該系統(tǒng)的實(shí)體包括商品信息、競拍信息、訂單信息、用戶信息以及圖片5個(gè)實(shí)體。
(1)由于該系統(tǒng)以馬匹為例,所以在商品管理表中,有馬名、馬主、馬匹價(jià)格、馬品種、馬匹數(shù)量等字段。
(2)在競拍管理表中,有商品、競拍起始時(shí)間、競拍結(jié)束時(shí)間、傭金、保證金、成交價(jià)以及商品名稱等字段。
(3)在訂單管理表中,有訂單編號(hào)、訂單狀態(tài)、支付方式、競拍成交價(jià)以及商品名稱等字段。
(4)在用戶管理表中,有電子郵箱、聯(lián)系方式、城市、地址以及用戶名等字段。
(5)在圖片管理表中,有圖片名稱,圖片類型等字段。
系統(tǒng)根據(jù)各表中的字段及各功能表之間的關(guān)系設(shè)計(jì)了相關(guān)ER圖,圖3為競拍與商品的關(guān)系ER圖。
以上是該系統(tǒng)的邏輯設(shè)計(jì),目的是把概念信息轉(zhuǎn)化成清晰明了的E-R圖,進(jìn)而轉(zhuǎn)化成與系統(tǒng)設(shè)計(jì)采用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。
數(shù)據(jù)庫在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理邏輯結(jié)構(gòu)。該系統(tǒng)依據(jù)各功能的具體屬性設(shè)計(jì)了數(shù)據(jù)庫的組織結(jié)構(gòu),如表1所示。
表1 數(shù)據(jù)庫組織結(jié)構(gòu)表
依據(jù)表1的組織結(jié)構(gòu),設(shè)計(jì)出了各功能的物理表,主要包含列名、說明、數(shù)據(jù)類型以及是否為空四項(xiàng),表2為商品信息物理表。
表2 商品信息物理表
系統(tǒng)采用Django框架,Python語言以及Bootstrap技術(shù)進(jìn)行開發(fā)。
Django是一個(gè)開源的Web應(yīng)用框架,由Python寫成。它具有強(qiáng)大的數(shù)據(jù)庫、優(yōu)雅的網(wǎng)址、完美的文檔、強(qiáng)大的后臺(tái)功能、易擴(kuò)展的模板系統(tǒng)等特點(diǎn)[5-6]。
Django框架支持模型(model)-模板(template)-視圖(view)的MTV設(shè)計(jì)模式,其中模型對(duì)應(yīng)的是數(shù)據(jù)存取層,主要用于數(shù)據(jù)相關(guān)事務(wù)的處理;模板對(duì)應(yīng)的是業(yè)務(wù)邏輯層,主要用于表現(xiàn)相關(guān)決定的處理;視圖對(duì)應(yīng)的是表現(xiàn)層,主要用于存取、調(diào)用模型及相應(yīng)的邏輯[7]。
Python語言具有簡單易學(xué)、移植性強(qiáng)、規(guī)范的代碼、豐富的庫、解釋性、多線程以及免費(fèi)開源等特點(diǎn)[8-9]。該系統(tǒng)使用python的3.6.0版本,可在網(wǎng)上下載。在安裝的過程中選擇自動(dòng)配置環(huán)境變量。
隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展,智能手機(jī)在人們的生活中應(yīng)用廣泛,而電腦因體積龐大不便時(shí)刻攜帶在身邊。因此,系統(tǒng)采用響應(yīng)式設(shè)計(jì),在手機(jī)上也可以輕松使用。
該系統(tǒng)采用Bootstrap進(jìn)行網(wǎng)頁的響應(yīng)式設(shè)計(jì)。Bootstrap是基于HTML、CSS、JavaScript開發(fā)的CSS/HTML框架[10-12]。它是一個(gè)用于快速開發(fā)Web應(yīng)用程序和網(wǎng)站的前端框架,由Twitter發(fā)布免費(fèi)使用。
系統(tǒng)的軟件架構(gòu)是通過Ajax,Javascript,網(wǎng)頁制作工具HTML5以及樣式制定所用的工具CSS進(jìn)行實(shí)現(xiàn)的。其中用戶看到的界面是采用HTML5開發(fā)的,由于HTML5具有本地存儲(chǔ)功能,因此基于HTML5開發(fā)的網(wǎng)頁APP擁有更短的啟動(dòng)時(shí)間、更快的聯(lián)網(wǎng)速度[13-16]。界面的樣式是采用CSS進(jìn)行具體定制的。技術(shù)架構(gòu)層的主要技術(shù)核心是實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)與交互,是通過Ajax和Javascript具體實(shí)現(xiàn)。以競拍管理功能的數(shù)據(jù)交互以及全選刪除數(shù)據(jù)為例,實(shí)現(xiàn)的程序如下:
//選擇狀態(tài)
var selectState=false;
//全選或者全取消
function AllCheck(thisform) {
alert("thisform.elements.length"+thisform.elements.length)
for(var i=0; i // 提取控件 var checkbox=thisform.elements[i]; checkbox.checked=!selectState; } selectState=!selectState; } var ids=""; var isselected=false; //批量刪除 function batchdelect() { var inputs=document.getElementsByName("groupCheckbox"); alert("inputs"+inputs) alert("inputs.length"+inputs.length) for(var i=0;i if(inputs[i].checked==true) { isselected=true; ids+=inputs[i].value + "," } } } 很多情況下,需要對(duì)數(shù)據(jù)進(jìn)行批量管理,在競拍管理功能列表上有多條數(shù)據(jù),當(dāng)需要同時(shí)刪除多條數(shù)據(jù)時(shí)可以通過Javascript實(shí)現(xiàn)多條數(shù)據(jù)同時(shí)選中。 function delecthorsewbreed(now_id) { var postdata=$("#"+now_id).serialize(); postdata+="&ids="+ids; alert("ids"+ids) $.ajax({ url:"/auction/management/view_batchdelet/" +ids+"/", data:postdata, type:"POST", success: function (rel) { console.log(rel) if (rel.status==1) { alert("刪除成功!"); $("#checkbox").modal('hide'); location.reload(); } } }); return false; } 在執(zhí)行刪除操作時(shí),還要獲取到數(shù)據(jù)的路徑,以便于準(zhǔn)確刪除??梢酝ㄟ^Ajax找到需刪除數(shù)據(jù)的路徑以保證準(zhǔn)確刪除。 商品信息列表如圖4所示。 圖4 商品信息列表 商品管理功能用于對(duì)馬匹的屬性信息進(jìn)行管理,主要包括增、刪、改、查等功能。馬匹屬性信息較多,為確保頁面美觀,列表僅顯示部分信息。因此,頁面設(shè)置了查看按鈕,管理員可通過點(diǎn)擊查看按鈕,查看馬匹具體詳細(xì)的信息并進(jìn)行修改。列表顯示圖片大小受限,所以商品名稱設(shè)置了鏈接,點(diǎn)擊后可跳轉(zhuǎn)到馬匹照片的頁面。管理員也可點(diǎn)擊頁面上的添加按鈕跳轉(zhuǎn)到添加頁面去添加一條新的馬匹信息,提交成功的馬匹信息通過Ajax交互式技術(shù)顯示在列表上。 競拍信息添加頁面如圖5所示。 圖5 添加競拍信息 競拍商品管理功能用于管理競拍流程的相關(guān)信息,主要包括增、刪、改、查等功能。增即指增加一條新的競拍記錄,查即指查看具體的競拍信息,改即指修改競拍信息,其中商品的競拍起始時(shí)間和結(jié)束時(shí)間是執(zhí)行修改操作的關(guān)鍵,管理員只能在競拍開始之前執(zhí)行修改操作,否則不允許修改。刪即指刪除競拍信息,刪除競拍的前提是無人交納保證金參與競拍或競拍不在進(jìn)程中且馬主撤回參與競拍的馬匹競拍信息方可刪除。該系統(tǒng)使用DateTimePicker控件來設(shè)置時(shí)間,當(dāng)點(diǎn)擊競拍起始時(shí)間或結(jié)束時(shí)間時(shí)會(huì)出現(xiàn)一個(gè)下拉列表用于選擇日期,避免了時(shí)間登記格式不一致的問題。 用戶信息界面如圖6所示。 圖6 用戶信息 在競拍業(yè)務(wù)流程中商品和競拍者都是不可缺少的角色,但有些競拍用戶在競拍進(jìn)程中會(huì)做一些不良行為,影響競拍。針對(duì)這類競拍者,可通過凍結(jié)解凍功能對(duì)他們進(jìn)行管理,凍結(jié)不良用戶的賬號(hào),使他們不能繼續(xù)參與競拍。 該系統(tǒng)采用Django框架、Python語言以及響應(yīng)式技術(shù)Bootstrap進(jìn)行開發(fā),由于采用的開發(fā)工具發(fā)展成熟,大大提高了開發(fā)效率,經(jīng)過半年的設(shè)計(jì),修改,已基本構(gòu)建完成。系統(tǒng)以昭蘇馬產(chǎn)業(yè)為例設(shè)計(jì)開發(fā),目的是希望能夠?qū)⒏鞯貐^(qū)特色產(chǎn)業(yè)與發(fā)展迅速并且適應(yīng)社會(huì)發(fā)展的信息技術(shù)相結(jié)合,帶動(dòng)產(chǎn)業(yè)發(fā)展,推動(dòng)地區(qū)經(jīng)濟(jì)進(jìn)步。因此,該系統(tǒng)的應(yīng)用范圍廣,遷移性強(qiáng),靈活度高,有很大的實(shí)用價(jià)值和經(jīng)濟(jì)價(jià)值。4.2 具體實(shí)現(xiàn)
5 結(jié)束語