• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      用Python寫一款A(yù)pp Inventor網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器

      2022-01-15 00:48:23李偉
      中國(guó)信息技術(shù)教育 2022年1期
      關(guān)鍵詞:服務(wù)器端網(wǎng)頁(yè)服務(wù)器

      李偉

      App Inventor是目前廣受中小學(xué)生喜愛的圖形化移動(dòng)應(yīng)用開發(fā)軟件,通過(guò)這款軟件,用戶可以快速地開發(fā)簡(jiǎn)易的移動(dòng)應(yīng)用程序。App Inventor的數(shù)據(jù)存儲(chǔ)采用了多種方式,包括文本文件、TinyDB、TinyWebDB等,其中TinyWebDB屬于網(wǎng)絡(luò)微數(shù)據(jù)庫(kù),用戶使用此數(shù)據(jù)庫(kù),可實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)存儲(chǔ),從而實(shí)現(xiàn)開發(fā)網(wǎng)絡(luò)版應(yīng)用程序。

      由于網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)需要服務(wù)器的支持,一般的用戶只能借助他人提供的遠(yuǎn)程服務(wù)器才可以使用這一功能,很不自由。在教學(xué)中,還常常因?yàn)檫h(yuǎn)程服務(wù)器的連接限制而導(dǎo)致測(cè)試失敗。因而,本文介紹一種基于Python的Flask框架開發(fā)App Inventor網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器的方法,讓任何計(jì)算機(jī)都能“搖身”變?yōu)榫W(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器,以滿足個(gè)人開發(fā)和日常教學(xué)的需求。

      ● 開發(fā)網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器的技術(shù)分析

      1.網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)存儲(chǔ)機(jī)制

      App Inventor開發(fā)的應(yīng)用程序,是通過(guò)TinyWebDB可以完成讀取數(shù)據(jù)與存儲(chǔ)數(shù)據(jù)的功能,其相關(guān)的數(shù)據(jù)結(jié)構(gòu)比較簡(jiǎn)潔,每條記錄只包含了tag(鍵)和value(值)兩項(xiàng)。

      在利用網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)進(jìn)行“讀取數(shù)據(jù)”時(shí),其實(shí)質(zhì)是發(fā)送一條網(wǎng)頁(yè)form表單請(qǐng)求,類似于“/get? tag=tagvalue”這樣的一條請(qǐng)求語(yǔ)句,傳送一個(gè)tag值,服務(wù)器捕獲這個(gè)請(qǐng)求后,查詢數(shù)據(jù)庫(kù)中是否存在這個(gè)tagvalue值,假若存在,則將此值返回給APP。

      而當(dāng)利用網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)進(jìn)行“保存數(shù)據(jù)”時(shí),其實(shí)質(zhì)同樣是發(fā)送一條網(wǎng)頁(yè)form表單請(qǐng)求。類似于“/get? stored=storedvalue”這樣的一條請(qǐng)求語(yǔ)句,傳送一個(gè)stored值,此stored值實(shí)際上是一個(gè)json格式的數(shù)組字符串,即["STORED", "tag","value"],以此告知服務(wù)器程序,需要保存的數(shù)據(jù)為:tag=“tag”,value=“value”。服務(wù)器捕獲這個(gè)get請(qǐng)求后,將此數(shù)據(jù)作為一條記錄存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)。

      2.網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器開發(fā)技術(shù)

      由網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)存儲(chǔ)機(jī)制可知,服務(wù)器程序應(yīng)提供兩項(xiàng)服務(wù),即數(shù)據(jù)讀取與數(shù)據(jù)存儲(chǔ)功能,其實(shí)質(zhì)是一個(gè)典型的Web應(yīng)用服務(wù)平臺(tái)。因此,只需搭建一個(gè)能提供數(shù)據(jù)讀取與數(shù)據(jù)存儲(chǔ)功能的Web應(yīng)用服務(wù)平臺(tái),并且在格式上進(jìn)行規(guī)范,即可替代原有的網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器。

      3.開發(fā)環(huán)境選擇

      程序主體采用目前廣受用戶喜愛的Python語(yǔ)言的Flask網(wǎng)頁(yè)框架進(jìn)行編寫,數(shù)據(jù)庫(kù)可以采用SQLite3模塊進(jìn)行構(gòu)建。由于數(shù)據(jù)傳輸中需要進(jìn)行json格式的轉(zhuǎn)換,因此還需要導(dǎo)入json模塊。

      4.主要功能模塊設(shè)計(jì)

      網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器由數(shù)據(jù)庫(kù)、服務(wù)器端等模塊構(gòu)成。

      其中,數(shù)據(jù)庫(kù)用于數(shù)據(jù)的存儲(chǔ),服務(wù)器端部分屬于反饋系統(tǒng)的主邏輯,承載著響應(yīng)APP請(qǐng)求,讀取相應(yīng)數(shù)據(jù)返回APP、捕獲APP發(fā)送的數(shù)據(jù)并存儲(chǔ)到數(shù)據(jù)庫(kù)。

      整體架構(gòu)如上頁(yè)圖1所示。

      ● 網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器的開發(fā)

      1.數(shù)據(jù)庫(kù)設(shè)計(jì)

      數(shù)據(jù)庫(kù)主要用于APP數(shù)據(jù)的存儲(chǔ)。對(duì)于最基本的服務(wù),可以設(shè)計(jì)一個(gè)數(shù)據(jù)表,并在數(shù)據(jù)表中設(shè)計(jì)兩個(gè)字段,分別為webtag與webvalue。本系統(tǒng)采用Python語(yǔ)言的SQLite3模塊構(gòu)建與操作數(shù)據(jù)庫(kù),其數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)如上頁(yè)表所示。建立數(shù)據(jù)庫(kù)的核心代碼如圖2所示。

      2.網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器程序編寫

      服務(wù)器端程序采用Flask網(wǎng)頁(yè)框架編寫,主要包括以下兩個(gè)主函數(shù)。

      getvalue()函數(shù):用于接收APP端讀取數(shù)據(jù)請(qǐng)求,并返回json格式的目標(biāo)數(shù)據(jù)。函數(shù)設(shè)計(jì)如圖3所示。

      storeavalue()函數(shù):用于接收APP端存儲(chǔ)數(shù)據(jù)請(qǐng)求,并將接收到的數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)中。函數(shù)設(shè)計(jì)如圖4所示。

      ● 網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器的部署與應(yīng)用

      1.啟動(dòng)服務(wù)器主程序

      網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器編寫完成之后,即可在服務(wù)器計(jì)算機(jī)中以命令行的方式運(yùn)行主程序:python tinywebdb.py。假設(shè)服務(wù)器地址為“192.168.31.132:8080”。

      2.編寫APP,并設(shè)置網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器地址

      設(shè)計(jì)示例APP的界面如下頁(yè)圖5所示,網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)服務(wù)器地址設(shè)置如圖6所示。

      本示例APP只實(shí)現(xiàn)兩個(gè)功能,即將文本框中輸入的tag值與value值存入網(wǎng)絡(luò)微數(shù)據(jù)庫(kù)中;向服務(wù)器發(fā)送讀取數(shù)據(jù)請(qǐng)求,并將相應(yīng)tag值的返回值加以顯示。其邏輯設(shè)計(jì)如圖7所示。

      3.調(diào)試

      在APP編寫完畢后,使用AI伴侶進(jìn)行測(cè)試,結(jié)果如圖8所示。

      猜你喜歡
      服務(wù)器端網(wǎng)頁(yè)服務(wù)器
      通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
      基于CSS的網(wǎng)頁(yè)導(dǎo)航欄的設(shè)計(jì)
      電子制作(2018年10期)2018-08-04 03:24:38
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      基于URL和網(wǎng)頁(yè)類型的網(wǎng)頁(yè)信息采集研究
      電子制作(2017年2期)2017-05-17 03:54:56
      得形忘意的服務(wù)器標(biāo)準(zhǔn)
      計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
      網(wǎng)頁(yè)制作在英語(yǔ)教學(xué)中的應(yīng)用
      在Windows中安裝OpenVPN
      10個(gè)必知的網(wǎng)頁(yè)設(shè)計(jì)術(shù)語(yǔ)
      網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
      阜宁县| 平山县| 封开县| 沁水县| 基隆市| 清河县| 赤壁市| 潍坊市| 班戈县| 卢湾区| 金阳县| 琼海市| 比如县| 仙游县| 尚志市| 镇沅| 贵港市| 承德县| 嘉兴市| 新宁县| 铜山县| 洞口县| 虎林市| 石狮市| 红原县| 尉犁县| 黑龙江省| 东台市| 灵山县| 浦江县| 安化县| 太保市| 灵武市| 富蕴县| 静宁县| 色达县| 根河市| 山丹县| 东宁县| 定结县| 元谋县|