華厚強(qiáng),康佳春
(中國(guó)民用航空飛行學(xué)院航空電子電氣學(xué)院,廣漢 618307)
自發(fā)現(xiàn)新型冠狀病毒感染病例以來(lái),新冠病毒已發(fā)生多種變異,傳播速度快,感染范圍廣,防控難度大。迄今為止,新冠肺炎疫情已在全球多點(diǎn)、多輪暴發(fā)并快速蔓延,令世界公共衛(wèi)生安全面臨極大挑戰(zhàn)。近兩年來(lái),國(guó)內(nèi)也發(fā)生了多波新冠疫情,黨領(lǐng)導(dǎo)人民采取最全面、最嚴(yán)格、最徹底的防控舉措,眾志成城,抗擊疫情成績(jī)斐然。在新冠疫情的散發(fā)期間,根據(jù)疫情防控需要,諸多學(xué)校采取封閉式管理,確保學(xué)生在校園環(huán)境處于可控安全的前提下,正常進(jìn)行教學(xué)。疫情嚴(yán)重時(shí),學(xué)校采取線上教學(xué)的方式,畢業(yè)生甚至需要進(jìn)行線上答辯和線上辦理畢業(yè)離校手續(xù),以減少不必要的外出和社交。
在因新冠疫情而采取的校園封閉式管理的情況下,很多學(xué)生尤其是無(wú)法返校的畢業(yè)生宿舍物品大量堆積。為了減少個(gè)人物品的堆積和不必要的浪費(fèi),急需設(shè)計(jì)一個(gè)校園交易平臺(tái),以便將在隔離在家、隔離在校的學(xué)生和校友聯(lián)系起來(lái),高效地交易閑置物品,互通有無(wú)。通過(guò)校園交易平臺(tái),學(xué)生可以高效地上傳自己不需要的閑置物品,以學(xué)生會(huì)為中間人,保證物品完好無(wú)損,再統(tǒng)一發(fā)布到網(wǎng)上平臺(tái),通過(guò)商品界面來(lái)點(diǎn)對(duì)點(diǎn)地讓學(xué)生在網(wǎng)上進(jìn)行物品交易和買賣,從而解決了物品不必要的浪費(fèi)。
本文基于Python語(yǔ)言、Django Web框架和MySQL數(shù)據(jù)庫(kù)三個(gè)要素,設(shè)計(jì)出在局域網(wǎng)內(nèi)本地服務(wù)器上的校園交易網(wǎng)站平臺(tái)。
Java語(yǔ)言是一套規(guī)范性很強(qiáng)的設(shè)計(jì)語(yǔ)言,適合團(tuán)隊(duì)項(xiàng)目開發(fā),在大型的軟件工程項(xiàng)目上確實(shí)需要高度規(guī)范化,Java語(yǔ)言具有難以比擬的優(yōu)勢(shì)。但同時(shí)Java語(yǔ)言也有不足之處,遇到需要頻繁變更程序的項(xiàng)目,大量的修補(bǔ)與更改容易破壞原本的架構(gòu),帶來(lái)不必要的bug以及維修成本。使用Java制作的程序項(xiàng)目一般復(fù)雜度高,且需要高穩(wěn)定度,Java大工作量的項(xiàng)目開發(fā)工序其實(shí)與個(gè)人小項(xiàng)目開發(fā)是不相符的。如果要做一個(gè)團(tuán)隊(duì)工作的項(xiàng)目,且完工后不再需要大量的修改,Java就是理想的編程語(yǔ)言。反之,如果以個(gè)人為開發(fā)單位,且項(xiàng)目需要頻繁變更程序,要快速高效地開發(fā),Java并不是明智的選擇。
Python是一種面向?qū)ο蟮慕忉屝汀?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語(yǔ)言,是在多種語(yǔ)言基礎(chǔ)上開發(fā)而來(lái),有“膠水語(yǔ)言”的別稱,具有標(biāo)準(zhǔn)強(qiáng)大的數(shù)據(jù)庫(kù),具有可拓展、可嵌入等優(yōu)勢(shì)。由于具有較強(qiáng)的交互性和可讀性,初學(xué)者也易于掌握Python語(yǔ)言。隨著技術(shù)水平和計(jì)算機(jī)性能的不斷提升,Python作為高級(jí)語(yǔ)言的響應(yīng)短板在不斷減小,而其因具有代碼量小、易于變更的優(yōu)勢(shì)使快速開發(fā)軟件不再成為挑戰(zhàn)。
Python的Web開發(fā)由于Django框架的強(qiáng)大功能,重心其實(shí)更多放在對(duì)html文件和數(shù)據(jù)庫(kù)的編程適配。只要求Web開發(fā)者實(shí)現(xiàn)一個(gè)函數(shù),就可以響應(yīng)HTTP請(qǐng)求。應(yīng)用Python腳本語(yǔ)言在實(shí)現(xiàn)Web開發(fā)中會(huì)感到格外順手和便捷。校園交易平臺(tái)是一個(gè)需要頻繁上下架物品和學(xué)生溝通的平臺(tái),程序和數(shù)據(jù)庫(kù)的變更會(huì)比較頻繁。因此,選用Python作為校園交易平臺(tái)的設(shè)計(jì)語(yǔ)言是個(gè)合適的方案。
主流的Web框架常使用Flask和Django這兩個(gè)Web框架服務(wù)。Flask是用Python語(yǔ)言寫成的輕量級(jí)Web框架,最顯著的特點(diǎn)是“微”框架結(jié)構(gòu),輕便靈活、易于擴(kuò)展。使用Flask框架時(shí),可省略許多需要單獨(dú)設(shè)置的步驟。例如,它沒有開箱即用的數(shù)據(jù)層或ORM,也沒有類似表單驗(yàn)證的規(guī)定。使用Django框架時(shí),部署速度快,數(shù)據(jù)庫(kù)以模型層來(lái)實(shí)現(xiàn)與實(shí)際數(shù)據(jù)庫(kù)做數(shù)據(jù)的交換。Django是“大而全”的重量級(jí)Web框架,自帶常用工具、組件和管理后臺(tái),適合快速開發(fā)功能完善的企業(yè)級(jí)網(wǎng)站。Django自帶免費(fèi)的數(shù)據(jù)SQLite,同時(shí)支持MySQL與PostgreSQL等諸多數(shù)據(jù)庫(kù)。考慮到校園交易平臺(tái)包含商品上架、評(píng)論、收藏和交易等功能,是一個(gè)較復(fù)雜的網(wǎng)站,綜合考慮Django更適合校園交易平臺(tái)這樣的網(wǎng)站開發(fā)。
前端框架指用于簡(jiǎn)化網(wǎng)頁(yè)設(shè)計(jì)的前端開發(fā)套件框架,如jquery、layui和bootstrap等。開發(fā)Web產(chǎn)品時(shí),使用前端框架可以實(shí)現(xiàn)界面直觀,易于操作。Django自帶基礎(chǔ)的前端框架模板,但Django前端界面比較簡(jiǎn)單,頂部、展示頁(yè)面和底部三段式的布局無(wú)法用來(lái)進(jìn)行復(fù)雜的操作和編寫,使得界面更加美觀。由于缺乏JavaScript的使用,它只能用來(lái)做基礎(chǔ)的靜態(tài)網(wǎng)頁(yè),沒辦法使網(wǎng)頁(yè)生動(dòng)起來(lái)。如果網(wǎng)頁(yè)的編寫重心在后端,并且前端使用靜態(tài)網(wǎng)頁(yè)面板就可以實(shí)現(xiàn)目的,那么使用Django自帶的前端模版確實(shí)是一個(gè)省時(shí)省力的操作。相反,如果網(wǎng)頁(yè)編程時(shí)重心在前端的網(wǎng)頁(yè)美化和動(dòng)態(tài)設(shè)計(jì),那么Django提供的模版就遠(yuǎn)遠(yuǎn)不夠。
第三方前端框架是目前的主流方向。隨著鑒賞水平的提高,人們對(duì)前端網(wǎng)頁(yè)的界面美觀度要求越來(lái)越高。網(wǎng)頁(yè)設(shè)計(jì)由原來(lái)的前后端不分離,變成了目前主流的前后端分離,前端工程師通過(guò)接口和數(shù)據(jù)庫(kù)來(lái)修改前端的網(wǎng)頁(yè)展示界面,方便后端工程師對(duì)數(shù)據(jù)庫(kù)的處理和數(shù)據(jù)接口的對(duì)接。目前主流的前端框架通常采用bootstrap和layui,它們編譯高效,可讀性強(qiáng),還可提供海量的教學(xué)案例和前端模版,開源免費(fèi),社區(qū)里新代碼更新上傳速度快。
本設(shè)計(jì)使用bootstrap中經(jīng)典的Django模版來(lái)作為前端的框架,用layui模版作為后端管理平臺(tái)的修飾,并在此基礎(chǔ)上修改成自己的網(wǎng)頁(yè)風(fēng)格,在簡(jiǎn)潔美觀的同時(shí)充分展現(xiàn)校園交易平臺(tái)的基礎(chǔ)功能。
計(jì)算機(jī)處理信息的過(guò)程中,經(jīng)常需要保存或處理大量數(shù)據(jù),這時(shí)就需要數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和管理這些數(shù)據(jù)。數(shù)據(jù)庫(kù)可以通過(guò)特定的方法管理和調(diào)用存放在數(shù)據(jù)庫(kù)里的數(shù)據(jù),包含數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)庫(kù)管理軟件,主要用來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的新增、查找、更新、刪除等操作。數(shù)據(jù)庫(kù)就像倉(cāng)儲(chǔ)物流一樣,區(qū)別只是存放的東西不同。兩種經(jīng)典且主流的數(shù)據(jù)庫(kù)是非關(guān)系數(shù)據(jù)庫(kù)NoSQL和關(guān)系數(shù)據(jù)庫(kù)MySQL。
使用NoSQL數(shù)據(jù)庫(kù)時(shí)數(shù)據(jù)通常是存放在內(nèi)存中,讀取速度非常快,可以滿足高響應(yīng)的要求,是Java互聯(lián)網(wǎng)系統(tǒng)的利器。NoSQL數(shù)據(jù)庫(kù)的優(yōu)勢(shì)在于它是開源軟件,可降低運(yùn)營(yíng)和維護(hù)成本。但它不支持SQL服務(wù)器,所以也不支持表單。MySQL數(shù)據(jù)庫(kù)憑借安全性、高效性、對(duì)多語(yǔ)言的兼容性、緊密性而得到廣大編程者的青睞。它體積小,維護(hù)運(yùn)營(yíng)數(shù)據(jù)庫(kù)的成本相對(duì)低廉,但擁有多種數(shù)據(jù)庫(kù)存儲(chǔ)引擎,帶有強(qiáng)大的內(nèi)置函數(shù)。它具有開放源碼的特點(diǎn),方便數(shù)量龐大的中小型網(wǎng)站開發(fā)者選擇使用MySQL數(shù)據(jù)庫(kù)。用戶可以直接在官方網(wǎng)站下載免費(fèi)的數(shù)據(jù)庫(kù)進(jìn)行安裝和部署,不必支付額外的費(fèi)用。
NoSQL主要用于大型網(wǎng)站的數(shù)據(jù)管理,具有高響應(yīng)、低延遲的特性,擁有優(yōu)秀的可拓展性,適合專業(yè)程序員對(duì)數(shù)據(jù)庫(kù)進(jìn)行個(gè)性化編譯和管理;而MySQL數(shù)據(jù)庫(kù)不需要使用者對(duì)當(dāng)前環(huán)境進(jìn)行調(diào)配,即可應(yīng)對(duì)各種平臺(tái)和編寫程序的考驗(yàn)??紤]到校園交易平臺(tái)并不需要十分苛刻的高響應(yīng)和低延遲特性,加上初學(xué)者對(duì)數(shù)據(jù)庫(kù)的了解程度遠(yuǎn)沒有達(dá)到自行編譯管理的程度,本設(shè)計(jì)最終選擇使用更具通用性和便利性的MySQL數(shù)據(jù)庫(kù)。
本設(shè)計(jì)基于Python的校園交易平臺(tái)主要由校園交易平臺(tái)管理和學(xué)生購(gòu)買兩部分組成。在校園交易平臺(tái)管理部分,可由學(xué)校相關(guān)機(jī)構(gòu),比如學(xué)生會(huì)統(tǒng)一收集同學(xué)們需要交易的物品,估算價(jià)值,并統(tǒng)一由學(xué)校交易機(jī)構(gòu)上傳商品。校園交易平臺(tái)管理系統(tǒng)包括前端展示頁(yè)面、后臺(tái)管理模塊、商品上傳、物品分類等必需模塊。在學(xué)生購(gòu)買部分,允許學(xué)生通過(guò)自己的郵箱賬號(hào)注冊(cè)和登陸校園交易平臺(tái),搜索并購(gòu)買自己需要的商品,購(gòu)買后進(jìn)行評(píng)論,因此這部分的用戶注冊(cè)與登陸模塊、商品搜索模塊、下單模塊和評(píng)論模塊等都是必需模塊。通過(guò)校園交易平臺(tái)管理部分和學(xué)生購(gòu)買部分的設(shè)計(jì),使網(wǎng)站擁有前后端功能,可實(shí)現(xiàn)校園交易平臺(tái)基本的網(wǎng)站電商功能。
一個(gè)完整的Django項(xiàng)目通常需要?jiǎng)澐殖龊芏嗖煌淖幽K進(jìn)行設(shè)計(jì),采用模塊設(shè)計(jì)可以使得分工更加明確,提高平臺(tái)設(shè)計(jì)的效率,減少報(bào)錯(cuò)時(shí)搜索修改關(guān)鍵代碼的難度。建設(shè)Django項(xiàng)目首先需要搭建好基于Python的項(xiàng)目開發(fā)環(huán)境,同時(shí)使用自帶Django框架易用性極高的PyCharm集成開發(fā)工具進(jìn)行項(xiàng)目設(shè)計(jì),可以便捷地管理整個(gè)項(xiàng)目。在創(chuàng)建項(xiàng)目之前,需要進(jìn)行模塊的分類。
校園交易平臺(tái)除了一開始展現(xiàn)首頁(yè)外,第二個(gè)展現(xiàn)的就是用戶的注冊(cè)和登陸界面,因此平臺(tái)的注冊(cè)和登陸是整個(gè)平臺(tái)的重要模塊之一,是用戶最先接觸、體驗(yàn)的模塊。制作出一個(gè)用戶在視覺層面上看起來(lái)干凈、操作項(xiàng)目清晰可辨的注冊(cè)網(wǎng)頁(yè)界面可以提升用戶體驗(yàn)。注冊(cè)和登陸模塊的流程就是首先提供用戶輸入用戶名、密碼進(jìn)行登陸這個(gè)功能。注冊(cè)模塊主要是引導(dǎo)用戶填寫注冊(cè)會(huì)員的必要信息。登陸和注冊(cè)的邏輯流程圖如圖1所示。
圖1 登陸和注冊(cè)邏輯流程圖
該模塊主要用來(lái)顯示網(wǎng)站界面,在校園交易平臺(tái),網(wǎng)站的首頁(yè)直接就包含商品的展示。首頁(yè)的商品將通過(guò)類似卡片樣子的圖片來(lái)展示給用戶。數(shù)據(jù)庫(kù)保存商品基本信息,如價(jià)格、圖片和件數(shù)等。管理員登陸Django管理后臺(tái)上傳商品后,用戶可以在首頁(yè)的界面,通過(guò)商品的分類顯示或者通過(guò)搜索欄搜索關(guān)鍵字的方式找到上傳的商品。在商品詳情頁(yè)面,可以看到商品的庫(kù)存和銷量、二手商品的成色和價(jià)格等詳細(xì)信息,用戶可以直接將商品放入購(gòu)物車,在該頁(yè)面里完成訂單的創(chuàng)立。
購(gòu)物車模塊是電商平臺(tái)基礎(chǔ)的展示頁(yè)面之一,交易平臺(tái)上的所有商品都可以通過(guò)加入購(gòu)物車的方式進(jìn)行統(tǒng)一支付,完成訂單的建立。特別是對(duì)進(jìn)行批量購(gòu)買的用戶,購(gòu)物車模塊對(duì)一次性操作多個(gè)商品的統(tǒng)一支付起著必不可少的作用。由于本平臺(tái)是以校園為單位的商品交易平臺(tái),學(xué)生間的物品交易幾乎不會(huì)出現(xiàn)批量交易物品的情況,因此后臺(tái)管理平臺(tái)上傳商品時(shí)基本以一件物品為單位上傳,并且不支持物品數(shù)量的修改,主要是考慮到二手物品單一物件的概率較高,不需要增加和刪減物品的數(shù)量。此外在這個(gè)界面下用戶可以選擇繼續(xù)購(gòu)物或者繼續(xù)結(jié)賬的選項(xiàng),方便用戶根據(jù)自己需求進(jìn)行選擇,是人性化購(gòu)物平臺(tái)的體現(xiàn)。
在購(gòu)物車界面點(diǎn)擊“繼續(xù)結(jié)賬”后,界面會(huì)跳轉(zhuǎn)到支付界面,界面包含支付寶以及微信支付的二維碼,方便同學(xué)使用手機(jī)掃碼支付。因?yàn)槭潜镜鼗@交易平臺(tái),考慮到現(xiàn)金的安全性,所以用的是簡(jiǎn)易的二維碼,僅起到展示的作用。但支付界面是交易平臺(tái)中交易的重要一環(huán)。
在校園交易平臺(tái)上,訂單模塊是整個(gè)交易平臺(tái)的交易核心模塊,這個(gè)模塊簡(jiǎn)單明了地展示用戶訂單下單的時(shí)間、消費(fèi)記錄和訂單編號(hào)等信息。另外該模塊還設(shè)置了評(píng)論功能,方便用戶對(duì)該商品進(jìn)行更加詳細(xì)的評(píng)論,這些評(píng)論會(huì)展示在商品詳情頁(yè)面的下方,方便其他用戶瀏覽,并決定是否購(gòu)買。
個(gè)人信息界面是校園交易平臺(tái)上用戶信息展示的地方,是整個(gè)平臺(tái)較為重要的展示界面。用戶通過(guò)該界面可以修改自己的地址,并在地址后面加上手機(jī)號(hào)碼,方便商家在商品出現(xiàn)問(wèn)題時(shí)可以及時(shí)和用戶進(jìn)行聯(lián)系。另外在用戶詳情模塊里可以看到用戶的注冊(cè)時(shí)間等信息。
Django ORM(對(duì)象關(guān)系映射)是Django自帶的強(qiáng)大功能之一,使得用戶能夠通過(guò)Python代碼而非SQL數(shù)據(jù)庫(kù)進(jìn)行交互。它有很多優(yōu)點(diǎn),比如在將sqlite數(shù)據(jù)庫(kù)遷移到MySQL數(shù)據(jù)庫(kù)時(shí),Django會(huì)自動(dòng)生成更新數(shù)據(jù)庫(kù)所需要的腳本,不會(huì)出現(xiàn)由于遷移引發(fā)的程序問(wèn)題。使用ORM進(jìn)行商品的搜索操作很簡(jiǎn)便,可以簡(jiǎn)化搜索的流程,不需要引入第三方搜索引擎,比如haystack的使用。但由于是精確查找,搜索欄中的字符串必須在數(shù)據(jù)庫(kù)的信息表中存在,搜索的精度要求比較高,不適用于大型的電商平臺(tái),但考慮到校園交易平臺(tái)的規(guī)模較小,是在可接受范圍內(nèi)的。
作為Django Web框架的核心,進(jìn)行數(shù)據(jù)庫(kù)原理學(xué)習(xí)和操作是進(jìn)行校園交易平臺(tái)創(chuàng)建的前提,先安裝好DB browser for sqlite程序,然后進(jìn)行Python的安裝。通常有兩種方式,①直接從官網(wǎng)下載安裝Python搭建環(huán)境,并通過(guò)pip下載安裝需要的包;②通過(guò)使用Anaconda安裝搭建Python環(huán)境。通過(guò)Anaconda安裝Python搭建環(huán)境的方式本身自帶了集成開發(fā)環(huán)境(integrated development environment,IDE),但還是推薦再在Anaconda環(huán)境下安裝PyCharm程序編譯器,它適合進(jìn)行Python語(yǔ)言的編程和設(shè)計(jì),可選擇安裝免費(fèi)的性價(jià)比較高的PyCharm社區(qū)版。基于Python語(yǔ)言、Django Web框架 和MySQL數(shù)據(jù) 庫(kù)三個(gè)要素,設(shè)計(jì)出在局域網(wǎng)內(nèi)本地服務(wù)器上的校園交易平臺(tái)網(wǎng)站后,可對(duì)交易平臺(tái)實(shí)現(xiàn)的功能進(jìn)行測(cè)試。
對(duì)本校園交易平臺(tái)來(lái)說(shuō),目前還處于設(shè)計(jì)初級(jí)階段,做的是前后端不分離、本地服務(wù)器下設(shè)計(jì)的本地網(wǎng)頁(yè)平臺(tái),由于目前條件有限,缺少聯(lián)網(wǎng)之后部署的服務(wù)器,以及聯(lián)網(wǎng)之后進(jìn)行支付寶公司接口對(duì)接完成支付的功能。因此,對(duì)校園交易平臺(tái)的測(cè)試主要在于測(cè)驗(yàn)各項(xiàng)功能是否正常運(yùn)行。由于網(wǎng)頁(yè)的可視化性更加直觀,因此將以前、后端網(wǎng)頁(yè)的功能能否順利實(shí)現(xiàn)作為主要的測(cè)試項(xiàng)目。
首先測(cè)試在PyCharm中能否將Django程序和MySQL服務(wù)器建立鏈接,在PyCharm中的終端輸入python manage.py runserver運(yùn)行代碼后,出現(xiàn)IP地址http://127.0.0.1:8000/,這是本地服務(wù)器的默認(rèn)地址,說(shuō)明本地?cái)?shù)據(jù)庫(kù)和程序鏈接良好。
點(diǎn)擊http://127.0.0.1:8000/,進(jìn)入默認(rèn)以Chrome瀏覽器打開的校園交易平臺(tái),如果是第一次登錄就會(huì)直接進(jìn)入注冊(cè)頁(yè)面進(jìn)行注冊(cè)。注冊(cè)功能如圖2所示。
圖2 注冊(cè)功能
在注冊(cè)頁(yè)面按照規(guī)定完成注冊(cè),或直接登錄后就進(jìn)入校園交易平臺(tái)首頁(yè)。該頁(yè)面包含有商品展示、分類和首頁(yè)展示,首頁(yè)展示頁(yè)面如圖3所示。
圖3 首頁(yè)展示
在首頁(yè)可以對(duì)商品進(jìn)行選擇和購(gòu)買,也可以按照類別進(jìn)行尋找,點(diǎn)擊類別里的類別項(xiàng),可以找到該類別里的所有物品。類別功能如圖4所示。
圖4 類別功能
在任何頁(yè)面下,點(diǎn)擊左上角的圓形紅色圖標(biāo),都可以回到首頁(yè)界面繼續(xù)瀏覽,也可以通過(guò)搜索特定的商品來(lái)直接展示該商品。搜索功能如圖5所示。
圖5 搜索功能
選擇好需要的商品后,點(diǎn)擊商品可以顯示商品詳情頁(yè)面,用戶可以對(duì)商品的成色、質(zhì)量和價(jià)格等進(jìn)行細(xì)心選擇,在該頁(yè)面可以把商品放入購(gòu)物車中。商品詳情頁(yè)面如圖6所示。
圖6 商品詳情頁(yè)面
用戶選購(gòu)?fù)晁枭唐泛螅谫?gòu)物車頁(yè)面可以進(jìn)行最終的付款操作。在任何界面時(shí),點(diǎn)擊網(wǎng)頁(yè)右上角的購(gòu)物車圖標(biāo),都可以進(jìn)入購(gòu)物車頁(yè)面。購(gòu)物車頁(yè)面如圖7所示。
圖7 購(gòu)物車頁(yè)面
在購(gòu)物車頁(yè)面可以瀏覽和比較商品,對(duì)不想要的商品可以通過(guò)點(diǎn)商品左邊的叉號(hào)去除該商品,總價(jià)格會(huì)重新計(jì)算。確認(rèn)信息無(wú)誤后,就可以準(zhǔn)確填寫地址和聯(lián)系方式,進(jìn)行下單操作。然后界面會(huì)在用戶點(diǎn)擊繼續(xù)結(jié)賬后跳轉(zhuǎn)到支付界面,使用手機(jī)進(jìn)行掃碼支付。掃碼支付界面如圖8所示。
圖8 掃碼支付界面
下單操作后會(huì)顯示操作完成,之后用戶可以通過(guò)點(diǎn)擊右上角的人像圖標(biāo)進(jìn)入訂單管理,里面會(huì)有訂單記錄信息,可以在訂單詳情下面進(jìn)行評(píng)論。訂單詳情頁(yè)面如圖9所示。
圖9 訂單詳情頁(yè)面
至此,用戶界面的體驗(yàn)?zāi)K和基本功能就算全部完成,接下來(lái)測(cè)試的是商家后臺(tái)管理系統(tǒng)界面。在PyCharm下輸入python manange.py createsuperuser創(chuàng)建后臺(tái)管理系統(tǒng)賬號(hào),在首頁(yè)的右上角點(diǎn)擊頭像圖標(biāo)可進(jìn)入后臺(tái)管理頁(yè)面,輸入密碼后,就可以登錄后臺(tái)管理系統(tǒng)。登錄頁(yè)面如圖10所示。
圖10 Django后臺(tái)登陸頁(yè)面
進(jìn)入后臺(tái)管理登錄頁(yè)面后,可以看到在Django下編輯的七個(gè)大類的表,在頁(yè)面中以可視化的方式進(jìn)行顯示。這七個(gè)大類的表單連接著數(shù)據(jù)庫(kù)里對(duì)應(yīng)的七個(gè)表,可以方便地進(jìn)行操作。Django后臺(tái)管理頁(yè)面如圖11所示。
圖11 后臺(tái)管理界面
至此,所有的平臺(tái)功能均已測(cè)試完畢。前端的功能包括本地服務(wù)器功能、注冊(cè)功能、用戶登錄功能、搜索功能、商品詳情頁(yè)面、購(gòu)物車購(gòu)買功能、訂單詳情功能和評(píng)論功能等,經(jīng)過(guò)測(cè)試,驗(yàn)證了設(shè)計(jì)的校園交易平臺(tái)可以實(shí)現(xiàn)以上應(yīng)具有的各項(xiàng)功能。另外,在后端管理平臺(tái)的賬號(hào)創(chuàng)建和登錄功能,后臺(tái)管理界面七個(gè)表的增、刪、改、查功能和商品在前端網(wǎng)頁(yè)的上傳、展示功能等全部均可以實(shí)現(xiàn)。
因此,通過(guò)對(duì)前端網(wǎng)頁(yè)功能和后端平臺(tái)管理功能的測(cè)試和驗(yàn)證,可以看出本校園交易平臺(tái)各項(xiàng)功能運(yùn)行良好,可涵蓋基礎(chǔ)電商平臺(tái)所應(yīng)具備的基本功能。經(jīng)過(guò)整體測(cè)試,系統(tǒng)反應(yīng)速度良好,無(wú)明顯延遲,可操作性強(qiáng),具有良好的用戶體驗(yàn)。
基于Python語(yǔ)言、Django Web框架和MySQL數(shù)據(jù)庫(kù),設(shè)計(jì)出在局域網(wǎng)內(nèi)本地服務(wù)器上的校園交易平臺(tái)網(wǎng)站。完成校園交易平臺(tái)的前端設(shè)計(jì)和功能實(shí)現(xiàn),采用前后端不分離的方式進(jìn)行編寫和設(shè)計(jì),對(duì)其中的SQLite數(shù)據(jù)庫(kù)和Django自帶的前端網(wǎng)頁(yè)模版進(jìn)行基于現(xiàn)實(shí)需求的二次修改,實(shí)現(xiàn)以校園環(huán)境為商業(yè)范圍、學(xué)校商品管理部為商家、學(xué)生為用戶的校園B2C電商系統(tǒng)功能。該校園交易平臺(tái)功能完善、界面簡(jiǎn)潔、可操作性強(qiáng),具有一定的實(shí)際應(yīng)用價(jià)值。校園交易平臺(tái)在后期可以進(jìn)一步完善,需要改進(jìn)和優(yōu)化的地方具體為:①可以加入網(wǎng)絡(luò)服務(wù)器的部署,使得整個(gè)校園交易平臺(tái)可以在不同地方聯(lián)網(wǎng)的手機(jī)和電腦等終端上顯示;②由于資金所限,目前只能演示掃碼支付功能,無(wú)法和微信、支付寶等在線支付接口形成對(duì)接,后續(xù)改進(jìn)需要建立完整的在線支付功能,使校園交易平臺(tái)的支付更便捷。校園交易平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)需要不斷地完善、改進(jìn)和優(yōu)化,以求達(dá)到更好的實(shí)際效果。