亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Django的快件攬收服務(wù)器的開發(fā)與應(yīng)用※*

        2016-03-10 01:58:55張臺章杰林培杰賴云鋒

        張臺,章杰,林培杰,賴云鋒

        (福州大學(xué) 微納器件與太陽能電池研究所, 福州 350116)

        ?

        基于Django的快件攬收服務(wù)器的開發(fā)與應(yīng)用※*

        張臺,章杰,林培杰,賴云鋒

        (福州大學(xué) 微納器件與太陽能電池研究所, 福州 350116)

        摘要:提出了一種基于Django的快件攬收服務(wù)器,該服務(wù)器通過快件的智能投遞和快件的統(tǒng)一收取來提高快件收發(fā)的效率。文中詳細(xì)描述了基于Django的快件攬收服務(wù)器的搭建和實(shí)現(xiàn)過程,為相關(guān)產(chǎn)品提供了一套很好的解決方案。對所設(shè)計(jì)的服務(wù)器進(jìn)行模擬測試,其測試結(jié)果達(dá)到了設(shè)計(jì)目標(biāo)。

        關(guān)鍵詞:快件攬收服務(wù)器;Django;Python

        引言

        Django是基于Python語言的優(yōu)秀Web框架,該框架遵循MVC開發(fā)模式,內(nèi)置多種Web開發(fā)組件,并集成了一個輕量級的Web服務(wù)器,使開發(fā)人員可以方便高效地對網(wǎng)絡(luò)應(yīng)用進(jìn)行開發(fā)和調(diào)試。本文利用Django技術(shù)的特點(diǎn),快速開發(fā)了一個快件攬收服務(wù)器。這方面研究有助于加速智能快件箱發(fā)展的進(jìn)程,具有較高的研究價值。

        1服務(wù)器框架的建立

        本文開發(fā)與實(shí)現(xiàn)的全過程都使用Python 2.7,因?yàn)楸痉?wù)器的設(shè)計(jì)與實(shí)現(xiàn)需要借助數(shù)據(jù)庫功能,在Python2.5之后的版本中,都自帶有sqlite3數(shù)據(jù)庫引擎,無需下載和安裝相應(yīng)的數(shù)據(jù)庫適配器,可以節(jié)省開發(fā)的時間。在開發(fā)環(huán)境搭建好后,即可開始快件攬收服務(wù)器的設(shè)計(jì)與開發(fā)。運(yùn)行django-admin.py startproject mysite命令,在當(dāng)前目錄下創(chuàng)建一個mysite目錄,該命令會在mysite目錄中產(chǎn)生一些.py文件,包括__init__.py、manage.py、settings.py、urls.py等。

        __init__.py文件可以讓Python把該目錄當(dāng)成一組模塊(即一個開發(fā)包)。manage.py是一種命令行工具,可以讓用戶以多種方式與該Django項(xiàng)目進(jìn)行交互。settings.py文件可以對項(xiàng)目相關(guān)的工程模塊和數(shù)據(jù)庫全局配置信息進(jìn)行設(shè)置。urls.py文件可以用來配置URL的地址映射和管理URL的地址格式,通過正則表達(dá)式來注冊站點(diǎn)信息。

        本服務(wù)器要使用Django的數(shù)據(jù)庫層(模型),因此必須創(chuàng)建一個Django app。在上面創(chuàng)建好的mysite目錄下,執(zhí)行命令python manage.py startapp Express,該命令會在mysite目錄里創(chuàng)建一個Express目錄,目錄內(nèi)包括admin.py、models.py、views.py等文件。在接下來的服務(wù)器的開發(fā)上,主要使用的是models.py及views.py。models.py是一個用python類來描述的數(shù)據(jù)表,可以通過python代碼來創(chuàng)建、修改、檢索數(shù)據(jù)庫中的記錄。視圖類文件views.py則用來編寫實(shí)現(xiàn)功能的邏輯代碼[3-4]。Django是一個典型的MVC模型框架,服務(wù)器體系結(jié)構(gòu)如圖1所示。

        圖1 快件攬收服務(wù)器體系結(jié)構(gòu)

        2服務(wù)器主要功能實(shí)現(xiàn)

        為了提高快件投遞和收取的效率,本服務(wù)器提供了快件便捷投遞和統(tǒng)一收取的功能。用戶在服務(wù)器上的寄件流程為:首先,用戶通過連接網(wǎng)絡(luò)的設(shè)備登錄到服務(wù)器站點(diǎn),初次使用的用戶可以在服務(wù)器上先注冊帳號,再進(jìn)行登錄。其次,在服務(wù)器主界面中選擇寄件信息填寫功能,填寫完畢后,服務(wù)器會生成驗(yàn)證碼。用戶記下驗(yàn)證碼,回到主界面,選擇快件投遞功能后會提示用戶輸入驗(yàn)證碼,用戶輸入正確的驗(yàn)證碼后服務(wù)器會生成寄件信息文檔(快遞單),用戶可以對其進(jìn)行打印,快遞單打印后用戶可以在服務(wù)器上選擇快件種類,完成整個寄件流程[5]。

        同時,服務(wù)器在實(shí)現(xiàn)過程中還加入了意見反饋及視頻拍照的功能,當(dāng)服務(wù)器出現(xiàn)故障或需改進(jìn)時,意見反饋功能可以讓用戶及時聯(lián)系管理員,視頻拍照功能則能夠跟蹤用戶的圖像信息,提升服務(wù)器的安全性能??爝f管理人員(快遞員)在服務(wù)器上的收件流程很簡單,本服務(wù)器設(shè)置有管理員帳號,該帳號具有對所有快件統(tǒng)一攬收的權(quán)限,相關(guān)管理人員(快遞員)用該帳號登錄服務(wù)器并進(jìn)入相應(yīng)管理界面后,即可對所有快件進(jìn)行統(tǒng)一收取。

        2.1服務(wù)器用戶、組和權(quán)限

        Django技術(shù)的一大優(yōu)勢在于具有完善的用戶管理機(jī)制及用戶權(quán)限系統(tǒng),可以讓管理者方便地進(jìn)行用戶管理。Django站點(diǎn)自帶有用戶管理界面,當(dāng)管理員用超級帳戶登錄后,點(diǎn)擊用戶鏈接可以進(jìn)入用戶信息管理界面,在管理界面內(nèi)可以查詢到服務(wù)器上所有普通用戶的信息,包括用戶名、密碼、電子郵箱、注冊時間及登錄時間等[6]。同時管理員可以對快件攬收服務(wù)器的所有注冊用戶的權(quán)限進(jìn)行設(shè)置,包括:用戶登錄權(quán)限、用戶是否可以查看寄件信息、用戶是否能夠修改寄件信息、用戶是否能夠刪除寄件信息等。Django管理界面還具有添加組的功能,如果需要給大量用戶特定的權(quán)限,可以新建一個組,在組中添加特定的權(quán)限,并將所有需要這些權(quán)限的用戶分配到這個組里,通過這種方法可以節(jié)省管理者的時間。因此,基于Django技術(shù)的快件攬收服務(wù)器在用戶管理方面具有優(yōu)勢,管理者可以在服務(wù)器上激活普通用戶、取消某些有惡意表現(xiàn)用戶的登錄資格,以及賦予普通用戶一些必要操作的權(quán)限。

        2.2登錄和寄件信息管理界面的設(shè)計(jì)與激活

        管理界面是服務(wù)器中非常重要的一部分,它是以網(wǎng)頁和有限的可信任管理者為基礎(chǔ)的界面,它可以添加、編輯和刪除網(wǎng)站內(nèi)容[7-8]。創(chuàng)建管理界面通常是千篇一律的,它必須認(rèn)證用戶,顯示并管理表格,驗(yàn)證輸入的有效性等;上述過程很繁瑣而且是重復(fù)勞動。本文所使用的Django在這方面做了較大的改進(jìn),可以用少量代碼來完成上述過程,因此,在Django中創(chuàng)建管理界面是非常方便的,這是Django技術(shù)的另一大優(yōu)勢[9]。本開發(fā)的首要任務(wù)是創(chuàng)建一個完善的寄件信息管理界面,過程如下:首先,在settings.py文件的INSTALLED_APPS配置中加入'django.contrib.admin',并保證INSTALLED_APPS中包含'django.contrib.auth'、'django.contrib.contenttypes'和'django.contrib.sessions',Django的管理工具需要這3個包。其次,默認(rèn)情況下,命令django-admin.py startproject生成的文件urls.py是將Django admin的路徑注釋掉的,需要手動取消注釋。最后,運(yùn)行 python manage.py syncdb命令生成管理界面使用的額外數(shù)據(jù)庫表。如果已經(jīng)把'django.contrib.auth'包含進(jìn)INSTALLED_APPS后,第一次運(yùn)行syncdb命令時, 系統(tǒng)會讓開發(fā)者創(chuàng)建一個超級帳號,開發(fā)者也可以運(yùn)行python manage.py createsuperuser命令來創(chuàng)建一個admin的超級帳號,否則將不能登錄服務(wù)器。

        圖2 快件攬收服務(wù)器登錄頁面

        快件攬收服務(wù)器的登錄頁面如圖2所示。為了防止用戶沒有登錄而直接訪問相應(yīng)功能網(wǎng)站的URL,需要在views.py文件的開頭引入代碼from django.contrib.auth.decorators import login_required。在相應(yīng)的視圖函數(shù)的前面添加@login_required標(biāo)簽,并在settings.py中配置LOGIN_URL參數(shù)(即登錄的URL),加入代碼LOGIN_URL = '/admin/'。同時修改mysite目錄下的urls.py文件,確保文件下代碼url(r'^admin/', include(admin.site.urls))的有效性。上述過程完成后,用戶就可以正常登錄服務(wù)器并且使用服務(wù)器后續(xù)的各項(xiàng)功能。

        本服務(wù)器開發(fā)中,用戶的寄件信息包括姓名、地址、電話、驗(yàn)證碼及投遞時間。通過修改models.py文件來激活寄件信息管理界面,實(shí)現(xiàn)對用戶寄件信息的管理。在models.py中每個數(shù)據(jù)模型都是django.db.models.Model的子類,本服務(wù)器只需一個寄件信息的數(shù)據(jù)模型,這個數(shù)據(jù)模型相當(dāng)于單個數(shù)據(jù)庫表,姓名、地址、電話、驗(yàn)證碼等屬性是這個表中的一個個字段。例如,要添加姓名這一字段,它的語法就是在class Express(models.Model)下添加name = models.CharField(max_length=30)。在定義完所有字段后,運(yùn)行命令python manage.py validate校驗(yàn)?zāi)P偷挠行裕绻麤]有錯誤發(fā)生,再運(yùn)行命令python manage.py sqlall Express即可生成數(shù)據(jù)庫表。在models.py的Express模塊最后加上class Admin,并且在admin.py文件中加入admin.site.register(Express),即可激活服務(wù)器的寄件信息管理功能。

        在完成服務(wù)器管理界面激活及數(shù)據(jù)庫表生成后,還需對數(shù)據(jù)庫進(jìn)行配置。Django的數(shù)據(jù)庫配置需要在Django的默認(rèn)配置文件settings.py中完成。在settings.py文件中找到DATABASES配置項(xiàng),在該配置項(xiàng)中進(jìn)行如下設(shè)置:“ENGINE': 'django.db.backends.sqlite3”,它告知Django在這次開發(fā)中使用的數(shù)據(jù)庫為sqlite3;'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),它將數(shù)據(jù)庫的名稱告知Django并對數(shù)據(jù)庫文件指定完整的文件系統(tǒng)路徑。在權(quán)限設(shè)置方面,服務(wù)器上的所有寄件信息只有超級帳戶能夠查詢,管理者用超級帳戶登錄后,在管理界面中可以瀏覽所有寄件信息和使用快件統(tǒng)一收取的功能,寄件信息管理頁面如圖3所示。

        圖3 寄件信息管理頁面

        2.3寄件信息的輸入及驗(yàn)證碼的生成

        普通用戶登錄后,會出現(xiàn)如圖4所示的頁面,它是普通用戶登錄服務(wù)器后出現(xiàn)的主界面,主要功能有寄件信息的填寫、快件的投遞、寄件信息的查詢及意見反饋等。

        圖4 快件攬收服務(wù)器主界面

        在主界面選擇輸入寄件信息選項(xiàng)后,會進(jìn)入寄件信息填寫的頁面,填寫完后的頁面略——編者注。為了區(qū)分該服務(wù)器上的所有寄件人,本服務(wù)器具有驗(yàn)證碼生成功能,用戶在服務(wù)器上填寫寄件信息后,服務(wù)器會生成不同的驗(yàn)證碼以區(qū)分不同的寄件信息,驗(yàn)證碼生成的視圖函數(shù)在views.py文件中編寫,該函數(shù)不僅要實(shí)現(xiàn)生成驗(yàn)證碼的功能,并且要將生成的驗(yàn)證碼和寄件信息對應(yīng)起來存入服務(wù)器的數(shù)據(jù)庫中。存入數(shù)據(jù)庫的信息只有服務(wù)器管理員(快遞員)用管理帳號登錄后才能查詢。

        2.4寄件信息文本的打印及快件種類的選擇

        接下來服務(wù)器開發(fā)的主要工作就是用驗(yàn)證碼來抓取寄件信息并生成文本文檔,即快遞單??爝f單文檔默認(rèn)在mysite目錄下生成,也可以自行設(shè)置文檔生成的路徑。該文檔可以在服務(wù)器上打開,因此,在電腦或其他可部署Django服務(wù)器的設(shè)備上連接打印機(jī)即可實(shí)現(xiàn)寄件流程中快遞單打印部分的功能。該部分的代碼在views.py文件中編寫,在相應(yīng)視圖函數(shù)中使用results=Express.objects.filter(qset).distinct(),將驗(yàn)證碼對應(yīng)的寄件信息存入results中,再使用f=open('express.doc','w') 及f.write(str(results))將寄件信息寫入生成的word文檔中,寄件信息文檔名為express.doc。最后,在views.py文件開頭引入webbrowser控件類,使用webbrowser.open()函數(shù)可在瀏覽器上直接打開文檔并打印。

        本服務(wù)器將快件分為兩類:紙質(zhì)信件及包裹信件。為了模擬快件投遞及快件種類選擇功能,服務(wù)器實(shí)現(xiàn)過程中在views.py視圖文件中加入了Python編寫的控制3道門開關(guān)及控制傳輸帶運(yùn)轉(zhuǎn)的視圖函數(shù)。這3道門包括主門及2道分別存放兩類快件的箱門,用戶選擇快件投遞選項(xiàng)后,主門打開,存放兩類快件的箱門關(guān)閉,這樣可以保證所有用戶快件的安全;在用戶投入快件并選擇好快件種類后,主門關(guān)閉,存放相應(yīng)種類快件的箱門打開,通過傳輸帶來輸送快件到相應(yīng)的箱門后。

        在前面所述的寄件信息管理頁面中,有快件統(tǒng)一收取的功能選項(xiàng),管理人員(快遞員)通過該選項(xiàng)可以同時打開3道門來實(shí)現(xiàn)快件的統(tǒng)一攬收。本服務(wù)器在實(shí)現(xiàn)過程中,借助的主要測試硬件為樹莓派。首先要將模擬門開關(guān)、步進(jìn)電機(jī)及驅(qū)動板與樹莓派的GPIO正確連接,然后在views.py中用import RPi.GPIO as GPIO引入GPIO庫,并通過setmode、setup、output等庫函數(shù)來對樹莓派各GPIO口進(jìn)行控制。最后,在html文件中,把頁面的功能選項(xiàng)和編寫的相關(guān)視圖函數(shù)聯(lián)系起來。完成上述關(guān)鍵步驟后,用戶即可通過網(wǎng)頁來控制“樹莓派B+”上的GPIO,實(shí)現(xiàn)快件種類選擇及快件投遞的功能,服務(wù)器頁面略——編者注,上述過程中使用的相關(guān)Python程序僅適用于樹莓派系列的開發(fā)板。

        2.5視頻拍照功能的實(shí)現(xiàn)

        在寄件流程的打印環(huán)節(jié),可以加入視頻拍照的功能,在用戶按下打印功能按鈕后,通過攝像頭捕捉屏幕中出現(xiàn)的人臉,在成功捕捉到人臉后,通過攝像頭進(jìn)行拍照保存。這項(xiàng)功能通過在Python中使用SimpleCV庫的函數(shù)findHaarFeatures來實(shí)現(xiàn),這是一個在圖像中搜索匹配某一特定模式的算法[10]。在SimpleCV庫中自帶了一些模式,如臉、鼻子、眼睛、身體等,開發(fā)者也可以下載或生成自己的模式文件。findHaarFeature可以分析攝像頭捕捉到的圖像,并從圖像中匹配出對應(yīng)的模式,然后返回匹配的部分在圖像中的位置,例如,使用這個函數(shù)可以匹配圖像中出現(xiàn)的汽車、動物或人。

        視頻拍照的實(shí)現(xiàn)代碼在views.py中編寫,用findHaarFeatures函數(shù)實(shí)現(xiàn)人臉識別的功能。首先,利用SimpleCV庫中的Camera函數(shù)設(shè)置圖像尺寸;其次,通過循環(huán)語句不斷執(zhí)行faces=frame.findHaarFeatures('face')來捕捉用戶在使用服務(wù)器打印功能時的圖像,只有當(dāng)攝像頭捕捉到人臉后,通過print函數(shù)打印str(face.coordinates())即可在終端顯示人臉的坐標(biāo);最后,執(zhí)行frame.save()就可將檢測到的人臉圖像保存,圖像的存放路徑可由開發(fā)者指定。圖像保存后,用戶才能繼續(xù)使用寄件流程的后續(xù)功能,如果攝像頭沒有捕捉到人臉,將不能使用寄件流程中的后續(xù)功能。通過視頻拍照,管理員就可以跟蹤到每一位寄件用戶的圖像信息,提高服務(wù)器的安全性能。該部分功能依舊可以在“樹莓派B+”上進(jìn)行測試,在樹莓派上連接好USB攝像頭后,測試結(jié)果如圖5所示。

        圖5 人臉捕捉并保存用戶圖像

        3服務(wù)器主要功能測試

        本服務(wù)器的測試可以通過將其部署到“樹莓派B+”開發(fā)板上進(jìn)行?!皹漭葿+”是一臺信用卡大小、基于Linux的卡片式電腦(Single-board Computer,單板機(jī)),它配備了一顆ARM11,主頻為700 MHz的CPU,以SD卡為內(nèi)存硬盤,卡片主板周圍有兩個USB接口和一個網(wǎng)口并配有40個GPIO口[11],因此,可以連接繼電器、打印機(jī)、步進(jìn)電機(jī)、顯示屏、USB攝像頭、鍵盤等外設(shè)來模擬寄件信息的輸入、快遞單的打印、快遞箱門的開關(guān)、視頻拍照、快件種類的選擇及快件在箱門后的輸送[12]。

        在實(shí)際的測試操作中,服務(wù)器在“樹莓派B+”上工作狀態(tài)良好,能夠?qū)崿F(xiàn)文中所述的快件攬收服務(wù)器的所有功能,完成整個流程后服務(wù)器會彈出結(jié)束頁面。因此,可將本服務(wù)器部署到一些相關(guān)的設(shè)備(如智能快件箱)上工作,可以提高快件投遞及快件收取的效率,具有不錯的實(shí)用性。

        結(jié)語

        本文設(shè)計(jì)的快件攬收服務(wù)器是基于Django技術(shù)進(jìn)行開發(fā)和實(shí)現(xiàn)的,主要針對2種用戶類別:寄件人和快遞管理人員。為了測試服務(wù)器的實(shí)用性,通過將服務(wù)器部署到“樹莓派B+”上進(jìn)行模擬測試,成功模擬了用戶寄件及快遞員統(tǒng)一取件的全部流程,實(shí)現(xiàn)了開發(fā)的目標(biāo)。該服務(wù)器可以幫助寄件人和快遞從業(yè)人員減輕負(fù)擔(dān),在一定程度上提高了快遞收發(fā)的效率,在快遞行業(yè)競爭白熱化的今天,希望這項(xiàng)研究可以為相關(guān)行業(yè)的發(fā)展提出一些參考。

        參考文獻(xiàn)

        [1] 武超.快遞業(yè)的現(xiàn)狀與對策[J].科學(xué)與財(cái)富,2013(2):184-185.

        [2] 洪厚興.“黑馬”智能快件箱[J].運(yùn)輸經(jīng)理世界, 2014(2):22-25.

        [3] 葉鋒.通過Python語言實(shí)現(xiàn)郵件收發(fā)[J].電腦編程技巧與維護(hù),2014(7):71-72.

        [4] 王冉陽.基于Django和Python的Web開發(fā)[J].電腦編程技巧與維護(hù),2009(2):56-58.

        [5] 王學(xué)斌,耿艷,焦錚,等.智能快件箱應(yīng)用研究[C]//交通運(yùn)輸部專家委員會2013年會論文集,2013:147-155.

        [6] 劉班.在Django下實(shí)現(xiàn)用戶的安全注冊和登錄[J].電腦編程技巧與維護(hù),2012(9):82-90.

        [7] 楊志慶.基于Django的Blog系統(tǒng)的開發(fā)與實(shí)現(xiàn)[J].機(jī)電一體化,2013,19(9):69-72.

        [8] 劉班.利用Django快速構(gòu)建信息發(fā)布系統(tǒng)[J].電腦編程技巧與維護(hù),2011(9):55-61.

        [9] 馬潔.Django技術(shù)在軟件開發(fā)中的應(yīng)用[J].湖南農(nóng)機(jī),2013,40(3):84,86.

        [10] Nathan Oostendorp,Anthony Oliver,Katherine Scott.Practical Computer Vision with SimpleCV[M].California:O'Reilly Media, 2012.

        [11] Matt Richardson,Shawn Wallace.Getting Started with Raspberry Pi[M].California:O'Reilly Media,2012.

        [12] 李文勝.基于樹莓派的嵌入式Linux開發(fā)教學(xué)探索[J].電子技術(shù)與軟件工程,2014(9).

        張臺(碩士研究生),主要研究方向?yàn)榍度胧较到y(tǒng)應(yīng)用。

        Development and Application of Express Transceiver Server Based on Django※

        Zhang Tai,Zhang Jie,Lin Peijie,Lai Yunfeng

        (Institute of Micro-Nano Devices&Solar Cells,Fuzhou University,Fuzhou 350116,China)

        Abstract:A Django-based express transceiver server is proposed,that is able to improve the efficiency through the intelligent delivery and collection functions.In the paper,the construction and implementation process of the express transceiver server are described,which provides a good solution for the related products.The simulation results indicate that the design scheme can fulfill the design target.

        Key words:express transceiver server;Django;Python

        收稿日期:(責(zé)任編輯:楊迪娜2015-08-22)

        中圖分類號:TP368.5

        文獻(xiàn)標(biāo)識碼:A

        * 基金項(xiàng)目:福建省教育廳省屬高??蒲袑m?xiàng)(項(xiàng)目編號:JK2014003)。

        日本熟妇裸体视频在线| 日本一区二区三级在线| 一区二区在线视频免费蜜桃| 中文区中文字幕免费看| 国产精品欧美一区二区三区| 色拍拍在线精品视频| 久久精品国产久精国产69| 成美女黄网站18禁免费| 丝袜人妻中文字幕首页| 中文字幕一区二区精品视频| 国产精品无码一区二区在线观一| 无码人妻丰满熟妇区毛片| 国产无码十八禁| 亚洲欧洲日产国码无码av野外| 日本精品少妇一区二区| 亚洲男人天堂一区二区| 国产精品 无码专区| 欧美大成色www永久网站婷| 红杏亚洲影院一区二区三区| 日韩成人无码v清免费| 最新国产av网址大全| 久久免费亚洲免费视频| 色婷婷综合久久久中文字幕| 精品三级av无码一区| 76少妇精品导航| 一本久久精品久久综合桃色| 日韩精品中文字幕第二页| av无码小缝喷白浆在线观看| 99re8这里有精品热视频免费| 亚洲国产精品国语在线| 一区二区亚洲精美视频| 日韩一级137片内射视频播放 | 少妇被黑人整得嗷嗷叫视频| 狠狠综合久久av一区二区| 久久国产亚洲高清观看5388 | 日韩精品视频av在线观看| 亚洲精品国产电影| 野外少妇愉情中文字幕| 在线观看国产精品91| 97久久综合精品国产丝袜长腿| 亚洲国产婷婷香蕉久久久久久|