999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于Python的二維碼傳輸系統的設計與實現*

2018-12-28 10:23:50
中小學電教 2018年12期
關鍵詞:功能

(南通師范高等專科學校,江蘇南通226500)

一、引言

互聯時代,各類設備之間的數據實現互聯互通。伴隨著各類移動應用的大規模普及,人們在智能終端上存儲的信息也越來越多,其與計算機設備之間的信息交互也越來越頻繁。因此,各類智能設備與計算機設備間的連接工具也猶如雨后春筍。雖然形式多樣,但就其傳輸屬性而言,不外乎以下兩種:一是通過USB線纜進行物理連接,將智能設備作為U盤掛載使用;二是通過在計算機設備與智能終端上分別安裝相應的應用軟件,再通過網絡進行互聯。對于這兩種傳輸方式的主要特征,表1進行了相應的分析。

表1 智能終端與計算機設備數據傳輸類型特征對比

為了突破物理線纜的束縛,擺脫第三方APP的依賴,同時又讓數據傳輸更為安全、快捷,本文提出了一種基于Python語言進行開發,通過二維碼形式進行數據傳輸的系統實現方法。

二、設計思路

本文所述的基于Python的二維碼傳輸系統設計思路如下:當系統開啟下載或上傳服務時,系統會將其所在的計算機設備設置為一臺提供HTTP服務的臨時服務器。程序會將執行共享操作的文件或文件夾的路徑生成為一個HTTP形式的網址鏈接,并將該鏈接轉換成二維碼呈現出來。使用者通過智能終端上的二維碼掃碼工具獲取鏈接信息,再通過自帶的瀏覽器將網址打開,然后進行相應的操作。這條被傳輸的鏈接既可以是一個指定下載文件路徑的地址,也可以是一個具備瀏覽服務器指定目錄、并提供上傳文件接口的網頁工作界面,使其不僅具備下載功能,還具備上傳功能,從而實現智能設備與計算機設備間數據的雙向傳輸(如圖1)。

圖1 系統設計思路簡圖

在此設計思路中,主要用到了以下幾個核心概念。

1.二維碼

二維碼是一種始于上個世紀80年代、并在近幾年得到迅猛發展與應用的、通過特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記錄數據符號信息的一種圖形編碼形式。它可以用于記載網址等信息,通過二維碼掃碼軟件,可以準確、方便地獲取其中的信息[1]。Python語言通過qrcode模塊可以將相關信息生成為二維碼圖片。這種快捷、直接、安全的呈現方式加上各類終端都已普及的攝像頭硬件,使得二維碼傳輸成為一種流行。

2.HTTP服務器

HTTP服務器是指提供Web服務的計算機,可以通過瀏覽器等工具根據其公開的地址對其進行訪問,并從中獲取信息。在該設計思路中,需要將計算機臨時變成一臺提供HTTP基礎服務的服務器。對于一般計算機使用者而言,并不具備配置服務器的能力。Python語言中的http.server庫模塊可以通過程序設置后提供搭建HTTP服務器的功能,并可以通過CGI功能實現信息的交互[2]。

3.CGI標準

CGI(Common Gateway Interface)(通用網關接口),是一個Internet標準,允許Web服務器運行一個服務器端程序,稱為CGI腳本[3]。通過CGI,HTTP服務器提供的不僅僅是靜態的網頁,而是可以與用戶進行交互的動態程序。Python可以作為CGI的腳本在HTTP服務器上進行運行。一般而言,Python中在使用CGI功能時,CGI的腳本都會存放在一個名為cgi-bin的特殊文件夾內,這樣web服務器就知道到哪里查找cgi腳本。CGI在整個Web服務中所處的位置如圖2所示。

圖2 CGI在Web數據處理中的位置

使用CGI的優點在于,用戶可以采用B/S的形式,通過授權的瀏覽器實現對服務器上的文件進行讀寫,并運行程序對服務器內容進行管理。Python語言中的相關模塊可以實現CGI功能。

三、實現步驟

1.HTTP服務器的實現

本系統實現的關鍵在于使用Python在使用者的電腦上建立一個臨時服務器。只有服務器存在,才可以進行下一步的共享功能的實現。Python中的許多模塊提供Web服務器的搭建功能,在這里主要選用http.server模塊[4]。該模塊可以創建并偵聽HTTP套接字,并將請求分派給相應的處理程序。在需要服務器提供CGI功能時,只要為其加載另一個名為CGIHTTPRequestHandler的庫就可以了。其功能實現的核心代碼如下。

通過以上步驟,執行代碼后,就可以在當前計算機上建立一個支持CGI的HTTP服務器。在瀏覽器中輸入地址http://IP:8080可以嘗試訪問,而程序文件所在的目錄也就是當前服務器提供WEB服務的根目錄。

2.共享路徑的指定

在系統運行時,無論是用戶共享單個文件,還是向用戶開放的指定目錄供其瀏覽,都需要在建立服務器的同時向服務器傳輸相關的共享信息。因此,該部分主要是解決共享路徑設置的問題。具體實現步驟:當服務器啟動時,需要使用者選擇服務器的運行模式,即共享文件以供下載或者開放目錄自由瀏覽,同時傳輸共享的地址或開放的路徑,服務器根據用戶選擇進行設置,并將設置完成后的信息生成為二維碼,等待用戶進行下一步的操作。具體如圖3所示。

圖3 服務開啟流程圖

在該模塊中,當使用者輸入了共享文件路徑或供用戶自由瀏覽的目錄后,程序會將其路徑寫入指定文件中。當后續程序需要使用到路徑時,均可以在該文件中進行讀取。

3.下載功能的實現

當用戶選擇了共享單個文件的模式之后,程序會將用于下載的文件的實際地址傳送給實現下載功能的相關模塊。該模塊使用CGI功能,解析地址后,將文件進行輸出,使用者則可以通過瀏覽器下載文件。

此模塊中,主要使用的是HTTP應答中Content-D isposition[5]消息頭指示回復內容的方法,將attachment指向共享文件,并以filename指定下載時默認文件名。

當瀏覽器開啟下載模式后,以fo=open(targetname,"rb")sys.stdout.buffer.write(fo.read())的方法,將 指 定內容通過瀏覽器傳輸到使用者本地設備上。

4.上傳功能的實現

文件上傳功能實現主要涉及以下幾個方面。一是獲取待上傳文件的相關信息,二是獲取文件將要上傳到服務器上的位置,三是實現上傳。

獲取待上傳文件信息的方法,是通過HTML表單實現的。用戶通過HTML表單選取待上傳文件,此時待上傳文件的路徑及文件名就可以通過POST或GET形式進行提交[6]。獲取文件需要上傳到的位置的方法較為簡單,由于程序在啟動時需要用戶設置共享位置,且該位置已被記錄到了相應的文件中,此時只需使用Python讀取文件的功能讀取該文檔信息即可。文件的上傳,同樣是使用 CGI功能,通過 Python 的 open(path+fn,'wb').write(item.file.read())語句實現將文件從本地設備寫入到服務器指定位置。

5.目錄的陳列

目錄內容的陳列模塊,需要實現以下幾項功能。一是要能區分目錄與文件,將它們分門別類,并按照順序陳列在頁面上;二是如果對象是目錄,要提供進入下一層目錄的鏈接,如果對象是文件,則要顯示其大小,并提供下載的鏈接。

讀取當前目錄中的對象,可以通過Python語言中的os.listdir(dir_path)來實現。對于讀取到的對象則可以通過is_file()函數來區分其為目錄或是文件。當判斷對象為目錄時,則通過Python讀取存放操作目錄的文件中的當前目錄名,將對象目錄名加載到當前目錄上,作為進入下層目錄的鏈接,供使用者選擇點擊,在進入下一級目錄時,將新的目錄路徑寫入到存放操作目錄的文件中保存,以備之后讀取;當判斷對象為文件時,則通過os.path.getsize()函數獲取目標文件的大小,并將其顯示出來,同時將該文件名與當前目錄路徑進行組合,形成絕對路徑,將其作為下載地址鏈接加載到相應按鈕上,當點擊按鈕后,再將其傳送到下載模塊進行下載操作。

四、總結與展望

通過上述步驟,一個基于Python的二維碼傳輸系統就可以實現。和傳統的智能終端與計算機間數據傳輸的各類形式相比,該系統簡潔輕便,功能強大,可跨平臺,無需在智能終端上安裝特定APP,不依賴于第三方環境,有著實時、高效、安全、跨平臺等優勢與特點,可以靈活地應用于各類辦公場所中。

當然,該系統中依然存在著諸多有待提升的地方,比如使用單個文件存儲共享路徑會對同一臺計算機上的系統使用人數有所限制;文件的上傳與下載目前還只能是單個進行,還不能多個文件同時進行或對文件夾進行打包、壓縮處理下載以節約網絡資源等等。這些功能的拓展將會使該系統變得更為易用,筆者也將在后續開發中陸續跟進。

猜你喜歡
功能
拆解復雜功能
鐘表(2023年5期)2023-10-27 04:20:44
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基層弄虛作假的“新功能取向”
當代陜西(2021年21期)2022-01-19 02:00:26
深刻理解功能關系
鉗把功能創新實踐應用
關于非首都功能疏解的幾點思考
基于PMC窗口功能實現設備同步刷刀功能
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 国产成人高清精品免费| 无码国产偷倩在线播放老年人| 国内精品视频| 亚洲第一视频免费在线| 国产精品林美惠子在线观看| 国产精品香蕉| 8090成人午夜精品| 99热这里只有免费国产精品| 欧美三级不卡在线观看视频| 国产精品无码一区二区桃花视频| 人妻无码AⅤ中文字| 亚洲色图欧美激情| 黄片一区二区三区| 色欲色欲久久综合网| 国产视频a| 5388国产亚洲欧美在线观看| 91青青在线视频| 国产成人亚洲无吗淙合青草| 国产凹凸视频在线观看| 午夜老司机永久免费看片| 91色在线视频| 亚洲成a人片| 国产一二三区在线| 国产欧美日韩专区发布| 日韩毛片免费| 国产自无码视频在线观看| 亚洲一级毛片在线观播放| 国产成人精品高清不卡在线| 四虎永久在线精品国产免费| 国产亚洲欧美在线人成aaaa | 三上悠亚在线精品二区| 美女被狂躁www在线观看| 最新日韩AV网址在线观看| 国产成人亚洲无码淙合青草| lhav亚洲精品| 伊人色天堂| 国产区免费精品视频| 久草视频一区| 波多野结衣中文字幕一区二区| 国产成人精品一区二区| 免费观看精品视频999| 日本一区高清| 久草视频精品| 国产精品嫩草影院av| 九色综合伊人久久富二代| 国产第一页免费浮力影院| 美女潮喷出白浆在线观看视频| 欧美日韩精品在线播放| 国产成人综合久久精品下载| 色婷婷色丁香| 日本不卡在线播放| 欧美精品亚洲精品日韩专区va| 日本不卡免费高清视频| 白浆视频在线观看| 中文字幕va| 国产成人综合在线视频| 国产精品刺激对白在线| 99热这里只有精品在线播放| 毛片最新网址| 亚洲91精品视频| 久久精品无码中文字幕| 亚洲美女操| 四虎永久在线精品国产免费| 亚洲色图另类| 无码福利视频| 免费观看男人免费桶女人视频| 67194亚洲无码| 中文成人在线视频| 女高中生自慰污污网站| 少妇精品网站| 成人在线观看不卡| 中文字幕无线码一区| 国产精品亚欧美一区二区| 2021精品国产自在现线看| 99久视频| 91在线免费公开视频| 91香蕉视频下载网站| 亚洲人成网站在线观看播放不卡| 在线观看免费国产| 久久精品人妻中文视频| 亚洲va视频| 99久久精品国产麻豆婷婷|