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例
主站蜘蛛池模板: 亚洲天堂啪啪| 五月婷婷综合在线视频| 成人免费午夜视频| 国产原创自拍不卡第一页| 国产美女免费| 99久久国产自偷自偷免费一区| 国产00高中生在线播放| 国产精品久久国产精麻豆99网站| 露脸真实国语乱在线观看| 一本色道久久88| 日本成人一区| 亚亚洲乱码一二三四区| 亚洲天天更新| 欧美中文字幕在线二区| 精品午夜国产福利观看| 8090午夜无码专区| 午夜性刺激在线观看免费| 欧美福利在线| 欧美精品成人一区二区在线观看| 3D动漫精品啪啪一区二区下载| 午夜福利在线观看入口| 欧美精品成人| 国产精品亚洲片在线va| aⅴ免费在线观看| 三区在线视频| 国产9191精品免费观看| 国产永久无码观看在线| 91www在线观看| 一级毛片无毒不卡直接观看| 久久精品国产精品一区二区| 国产网友愉拍精品视频| 亚洲AⅤ无码国产精品| 欧美在线导航| 国产一区二区三区免费| 国产成人AV大片大片在线播放 | 在线国产91| 国禁国产you女视频网站| 色婷婷成人网| 91久久偷偷做嫩草影院精品| 中文字幕天无码久久精品视频免费 | 乱系列中文字幕在线视频| 国产亚洲精久久久久久久91| 五月激情婷婷综合| 婷婷五月在线视频| 亚洲精品高清视频| 国产一区二区精品福利| 国产全黄a一级毛片| 日韩精品无码免费一区二区三区 | 制服丝袜一区| 91久久国产成人免费观看| 欧美日韩国产在线人成app| 亚洲无码免费黄色网址| 国产亚洲精品无码专| 亚洲三级影院| 亚洲三级成人| 狠狠干欧美| 午夜啪啪福利| 亚洲视频色图| 精品久久人人爽人人玩人人妻| 亚洲第一成年免费网站| 亚洲国产精品国自产拍A| 亚洲综合色婷婷中文字幕| 亚洲AV无码一区二区三区牲色| 日本高清视频在线www色| 国产理论最新国产精品视频| 欧洲成人免费视频| 999在线免费视频| 呦女精品网站| 综合成人国产| 久久人人97超碰人人澡爱香蕉| 国产黄色片在线看| 国产人在线成免费视频| 国产特级毛片aaaaaa| 波多野结衣一二三| 色综合天天操| 99久久国产综合精品2020| 亚洲欧美日韩精品专区| 2021国产精品自拍| 特黄日韩免费一区二区三区| 中国国产A一级毛片| 国产一区二区三区夜色| 中文字幕亚洲电影|