日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

使用mysql記錄從url返回的http GET請(qǐng)求數(shù)據(jù)操作

瀏覽:67日期:2023-10-07 10:34:44
業(yè)務(wù)場(chǎng)景需求及實(shí)現(xiàn)邏輯分析

在業(yè)務(wù)中,我們經(jīng)常會(huì)碰到需要用HTTP GET請(qǐng)求數(shù)據(jù)的情況,比如http請(qǐng)求返回的結(jié)果如下所示:

使用mysql記錄從url返回的http GET請(qǐng)求數(shù)據(jù)操作

那么,如果我們想將這些數(shù)據(jù)用mysql存儲(chǔ)下來(lái),那該怎么實(shí)現(xiàn)呢?

其實(shí),調(diào)用python的httplib和MySQLdb包將會(huì)非常容易實(shí)現(xiàn),httplib負(fù)責(zé)獲取url的返回,MySQLdb負(fù)責(zé)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行操作。下面整理了關(guān)系邏輯圖:

使用mysql記錄從url返回的http GET請(qǐng)求數(shù)據(jù)操作

那么,我們開始代碼開發(fā):

python依賴包準(zhǔn)備

python需要用到的包至少有如下幾個(gè),其中MySQLdb依賴包的安裝可以參考python安裝mysql的依賴包mysql-python

# 此為python文本編輯器界面#!/usr/bin/python# coding=utf-8import httplibimport jsonimport timeimport MySQLdb

用httplib獲取url請(qǐng)求返回

httplib包支持如下的一些方法和函數(shù):

url = 'http://www.testtesttest.com/mobile/kit?token=yyyyyyyyy&key=tttttt&size=1' #具體的url鏈接conn = httplib.HTTPConnection('www.testtesttest.com')conn.request(method='GET', url=url) #指定GET方法,以及url對(duì)象response = conn.getresponse() #創(chuàng)建response對(duì)象res = response.read() #讀取url返回的內(nèi)容# 使用json.loads方法將json解碼為python對(duì)象json_repose = json.loads(res)data = json_repose[’data’]

此時(shí),http請(qǐng)求返回的所有信息都存在了對(duì)象res中,因?yàn)檎?qǐng)求返回的是json字符串,上面我們采用了json.loads方法來(lái)解析。

可以留意到,最終我們將請(qǐng)求返回的json內(nèi)容,都存到了python的對(duì)象中里,而一旦將數(shù)據(jù)轉(zhuǎn)為數(shù)組或者元組等形式儲(chǔ)存,我們就可以用python自帶的函數(shù)對(duì)其進(jìn)行解析或者其他操作了。

用python解析url請(qǐng)求返回的json

# 這里我們定義了一個(gè)函數(shù)用于解析jsondef data_list_analyze(i): data_dict = data[i] status = data_dict[’status’] devi_id = data_dict[’devi_id’] update_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(data_dict[’update_time’])) actived_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(data_dict[’actived_time’])) return devi_id, imei, device_type, actived_timepython連接數(shù)據(jù)庫(kù)并寫入數(shù)據(jù)

接下來(lái)是數(shù)據(jù)庫(kù)的連接示例:

# 打開數(shù)據(jù)庫(kù)連接,指定數(shù)據(jù)庫(kù)ip、用戶名、密碼、連接的庫(kù)名db = MySQLdb.connect('192.168.xxx.xxx', 'db_user', 'db_password', 'db_database', charset=’utf8’)# 使用cursor()方法獲取操作游標(biāo)cursor = db.cursor()# 建表sql語(yǔ)句sql = '''create table if not exists `gergsmart_list`(`devi_id` varchar(255) NOT NULL COMMENT ’IMEI, //硬件設(shè)備 IMEI’,`imei` varchar(255) COMMENT ’ICCID,//硬件設(shè)備 SIM卡’,`device_type` varchar(255) COMMENT ’設(shè)備類型’,`actived_time` datetime COMMENT ’⾸次激活時(shí)間’,PRIMARY KEY(`devi_id`))ENGINE=INNODB DEFAULT CHARSET=utf8;'''# 使用execute方法執(zhí)行SQL語(yǔ)句,建表cursor.execute(sql)# 插入數(shù)據(jù)sql語(yǔ)句insert_sql = 'insert into `gergsmart_list` (devi_id,imei,device_type,actived_time) values (%s, %s, %s, %s,)'

從上面可以留意到,我們可以將python解析得到的對(duì)象devi_id、imei、device_type、actived_time,放入了mysql的插入語(yǔ)句中去,這樣我們就實(shí)現(xiàn)了“從url獲取數(shù)據(jù),存到python對(duì)象中,再將python對(duì)象插入到mysql的記錄中”這樣的操作了。

總結(jié),其實(shí)我們可以將python看作為一個(gè)中轉(zhuǎn)器,接收url請(qǐng)求返回,并寫入MySQL。而其中httplib負(fù)責(zé)了接收操作,MySQLdb負(fù)責(zé)了寫入操作。

補(bǔ)充:mysql請(qǐng)求超時(shí)!延伸拓展至get post請(qǐng)求的區(qū)別是什么,超詳細(xì)!一篇足矣解決所有?。?/b>

將數(shù)據(jù)庫(kù)的連接地址從127.0.0.1改為localhost即可!親測(cè)有效??!

查閱了很多的資料,歸納總結(jié)了get請(qǐng)求和post請(qǐng)求的區(qū)別

做了以下總結(jié):

眾所周知的是get請(qǐng)求的參數(shù)是直接暴露在url上面,安全性較低。post請(qǐng)求的參數(shù)是存放在body里面夾帶過(guò)去,安全性較高一點(diǎn)。接下來(lái)我們看看稍微全面一點(diǎn)的解釋

我們先看一下前輩們的解釋

一、get和post請(qǐng)求的區(qū)別是什么:

get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。

get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng),在URL中可以看到。post是通過(guò)HTTPpost機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個(gè)過(guò)程。

對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對(duì)于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。

get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

get安全性非常低,post安全性較高。

GET 請(qǐng)求可被緩存 POST 請(qǐng)求不會(huì)被緩存

GET 請(qǐng)求保留在瀏覽器歷史記錄中 POST 請(qǐng)求不會(huì)保留在瀏覽器歷史記錄中

GET 請(qǐng)求可被收藏為書簽 POST 不能被收藏為書簽

GET請(qǐng)求只能進(jìn)行url編碼(application/x-www-form-urlencoded)POST支持多種編碼方式(application/x-www-form-urlencoded 或 multipart/form-data。為二進(jìn)制數(shù)據(jù)使用多重編碼。)

最直觀的區(qū)別就是GET把參數(shù)包含在URL中,POST通過(guò)request body傳遞參數(shù)。

接下來(lái)參考一下官方的說(shuō)法是什么:

二、在w3schools中也對(duì)二者進(jìn)行了區(qū)分給出了官方的答案

GET在瀏覽器回退時(shí)是無(wú)害的,而POST會(huì)再次提交請(qǐng)求。

GET產(chǎn)生的URL地址可以被Bookmark,而POST不可以。

GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cache,而POST不會(huì),除非手動(dòng)設(shè)置。

GET請(qǐng)求只能進(jìn)行url編碼,而POST支持多種編碼方式。

GET請(qǐng)求參數(shù)會(huì)被完整保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會(huì)被保留。

GET請(qǐng)求在URL中傳送的參數(shù)是有長(zhǎng)度限制的,而POST么有。

對(duì)參數(shù)的數(shù)據(jù)類型,GET只接受ASCII字符,而POST沒有限制。

GET比POST更不安全,因?yàn)閰?shù)直接暴露在URL上,所以不能用來(lái)傳遞敏感信息。

GET參數(shù)通過(guò)URL傳遞,POST放在Request body中。

GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包;POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包。

基于上述以及查閱的資料做一個(gè)總結(jié)

HTTP是基于TCP/IP的關(guān)于數(shù)據(jù)如何在萬(wàn)維網(wǎng)中如何通信的協(xié)議。 HTTP的底層是TCP/IP。所以GET和POST的底層也是TCP/IP,也就是說(shuō),GET/POST都是TCP鏈接。GET和POST能做的事情是一樣一樣的。你要給GET加上request body,給POST帶上url參數(shù),技術(shù)上是完全行的通的。

post請(qǐng)求和get請(qǐng)求都是HTTP的請(qǐng)求方式,本質(zhì)上來(lái)說(shuō)并無(wú)區(qū)別,底層實(shí)現(xiàn)都是基于TCP/IP協(xié)議。但是請(qǐng)求有各種各樣的方式,于是HTTP對(duì)請(qǐng)求方式進(jìn)行了劃分和規(guī)定,于是產(chǎn)生了get、post處理請(qǐng)求的分工和區(qū)別。

此外還有搜索到另外一個(gè)區(qū)別:GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包;POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包。對(duì)于GET方式的請(qǐng)求,瀏覽器會(huì)把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200(返回?cái)?shù)據(jù));而對(duì)于POST,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok(返回?cái)?shù)據(jù))。

GET與POST都有自己的語(yǔ)義,不能隨便混用。

據(jù)研究,在網(wǎng)絡(luò)環(huán)境好的情況下,發(fā)一次包的時(shí)間和發(fā)兩次包的時(shí)間差別基本可以無(wú)視。而在網(wǎng)絡(luò)環(huán)境差的情況下,兩次包的TCP在驗(yàn)證數(shù)據(jù)包完整性上,有非常大的優(yōu)點(diǎn)。

并不是所有瀏覽器都會(huì)在POST中發(fā)送兩次包,F(xiàn)irefox就只發(fā)送一次。

綜述:

“GET方式提交的數(shù)據(jù)最多只能是1024字節(jié)”,因?yàn)镚ET是通過(guò)URL提交數(shù)據(jù),那么GET可提交的數(shù)據(jù)量就跟URL的長(zhǎng)度有直接關(guān)系了。而實(shí)際上,URL不存在參數(shù)上限的問(wèn)題,HTTP協(xié)議規(guī)范沒有對(duì)URL長(zhǎng)度進(jìn)行限制。這個(gè)限制是特定的瀏覽器及服務(wù)器對(duì)它的限制。IE對(duì)URL長(zhǎng)度的限制是2083字節(jié)(2K+35)。對(duì)于其他瀏覽器,如Netscape、FireFox等,理論上沒有長(zhǎng)度限制,其限制取決于操作系統(tǒng)的支持。注意這是限制是整個(gè)URL長(zhǎng)度,而不僅僅是你的參數(shù)值數(shù)據(jù)長(zhǎng)度。

理論上講,POST是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進(jìn)行大小限制,說(shuō)“POST數(shù)據(jù)量存在80K/100K的大小限制”是不準(zhǔn)確的,POST數(shù)據(jù)是沒有限制的,起限制作用的是服務(wù)器的處理程序的處理能力。對(duì)于ASP程序,Request對(duì)象處理每個(gè)表單域時(shí)存在100K的數(shù)據(jù)長(zhǎng)度限制。但如果使用Request.BinaryRead則沒有這個(gè)限制。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
岛国av免费在线观看| 免费在线观看视频一区| 深夜福利一区| 亚洲丝袜啪啪| 黄色日韩精品| 欧美精品自拍| 日韩精品一二区| 免费成人av在线播放| 蜜桃av一区二区在线观看| 亚洲自啪免费| 久久午夜精品| 日韩午夜视频在线| 日韩高清一区| 97久久超碰| 国产精品主播在线观看| 国产精品九九| 国产精品成人a在线观看| 丁香六月综合| 国产伊人精品| 免费在线观看精品| 亚洲精品在线二区| 国产精品对白| 亚洲精品永久免费视频| 日韩av首页| 在线国产一区二区| 亚洲三级精品| 美女视频黄免费的久久| 人人草在线视频| 樱桃成人精品视频在线播放| 亚洲我射av| 国产日韩欧美中文在线| 成人黄色av| 一区视频在线| 热久久久久久| 中文在线免费视频| 久久激情中文| 性欧美长视频| 国产欧美一区二区精品久久久 | 精品中文在线| 国产精品亚洲一区二区三区在线观看| 91久久中文| 久久激情五月婷婷| 日韩中文欧美| 免费不卡在线观看| 麻豆精品新av中文字幕| 欧美丝袜一区| 色婷婷成人网| 国产成人精品三级高清久久91| 欧美日韩激情| 日本久久一区| 日韩在线中文| 日韩**一区毛片| 国产成人黄色| 免费观看久久久4p| 成人免费一区| 免费欧美在线视频| 麻豆精品在线观看| 亚洲作爱视频| 九九久久国产| 美美哒免费高清在线观看视频一区二区 | 欧美好骚综合网| 国产精品日韩久久久| 美女视频免费精品| 夜夜精品视频| 精品久久免费| 亚洲69av| 久久高清免费| 国产精品一区二区av交换 | 国产精品普通话对白| 欧美精品1区| 巨乳诱惑日韩免费av| 嫩草伊人久久精品少妇av杨幂| 国产视频亚洲| 鲁大师精品99久久久| 视频精品一区二区| 国产精品久久久久av电视剧| 欧美视频久久| 欧美精品黄色| 91亚洲成人| 日韩av中文字幕一区二区| 欧美综合另类| 精品国产美女a久久9999| 噜噜噜躁狠狠躁狠狠精品视频| 精品九九久久| 日韩精品第二页| 亚洲精品中文字幕乱码| 亚洲黄色中文字幕| 国产精品一区二区av日韩在线| 亚洲精品网址| 色88888久久久久久影院| 欧美精品不卡| 日本成人手机在线| 国产亚洲福利| 特黄特色欧美大片| 国产一区二区三区国产精品| 国产视频一区二| 亚洲精品一级| 久久都是精品| 国产主播一区| 日韩精品91| 精品久久福利| 国产黄色一区| 国产日本亚洲| 亚洲精品四区| 免费观看久久久4p| 亚洲欧美日韩国产| 99精品在线观看| 日韩电影在线视频| 亚洲欧洲高清| 日韩激情一区| 日韩亚洲一区在线| 四虎成人av| 精品欧美日韩精品| 国产精品超碰| 欧美日韩一区二区高清| 日本在线成人| 91在线成人| 91精品啪在线观看国产爱臀| 一二三区精品| 日本欧洲一区二区| 亚洲一区av| 亚洲精品女人| 日韩av中文字幕一区| 国产日韩欧美三区| 国产亚洲高清一区| 久久一区视频| 日本久久综合| 黄毛片在线观看| 香蕉视频亚洲一级| 欧美中文一区二区| 国产精品普通话对白| 蜜桃久久精品一区二区| 视频在线观看一区| 丝袜诱惑制服诱惑色一区在线观看| 国产亚洲高清视频| 亚洲ww精品| 国产香蕉精品| 国际精品欧美精品| 欧美日韩视频免费观看| 亚洲福利免费| 午夜在线视频一区二区区别| 中文字幕视频精品一区二区三区| 一区二区日韩免费看| 日韩久久99| 国产欧美69| 国产不卡精品| 亚洲精选成人| 国产精品色在线网站| 久久超碰99| 日韩综合精品| 久久av一区二区三区| 日韩中文一区二区| 国产极品模特精品一二| 欧美日韩视频网站| 久久久久网站| 免费在线观看精品| 国产精品久久久久久av公交车| 粉嫩av一区二区三区四区五区| 成人va天堂| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品入口久久| 亚洲播播91| 欧美片网站免费| 激情综合五月| 自拍日韩欧美| 国产日本精品| 色在线中文字幕| 亚洲一区日韩| 国产日韩欧美一区二区三区| 成人在线免费观看91| 国产精品7m凸凹视频分类| 亚洲区第一页| 国产suv精品一区| 99视频精品| 久久99久久人婷婷精品综合| 99国产精品一区二区| 中文字幕日本一区| 久久精品午夜| 国产在线成人| 国产日韩亚洲| 久久国产电影| 欧美私人啪啪vps| 999国产精品视频| 日韩免费精品| 亚洲一级网站| 欧美亚洲一区二区三区| 日韩在线精品| 欧美日韩一区自拍| 亚洲二区三区不卡| 欧美精品不卡| 久久不射中文字幕| 国产精品久久久久久久免费观看 | 黄色亚洲大片免费在线观看| 国产美女精品视频免费播放软件| 秋霞影院一区二区三区| 欧美一区免费| 性欧美xxxx免费岛国不卡电影| 欧美三级第一页| 欧美日韩高清| 成人精品高清在线视频|