Day19 - 總結(jié)

1. python中有一個第三方庫叫'requests'中提供了所有和http請求相關(guān)的函數(shù)

1.1 get請求

????get(url, params=None) - 發(fā)送請求獲取服務(wù)器返回的響應
????url - 請求地址, 字符串
????params - 請求參數(shù), 字典

方法一: (既適用于get也適用于post)

????url = 'https://www.apiopen.top/satinApi'
????params = {'type': 1, 'page': 2}
????response = requests.get(url, params)
????print(response)

方法二: 只能用于get請求

????url = 'https://www.apiopen.top/satinApi?type=1&page=1'
????response = requests.get(url)
????# print(response)

1.3 獲取請求結(jié)果

響應頭

{'Server': 'nginx', 'Date': 'Thu, 15 Aug 2019 03:39:09 GMT', 'Content-Type': 'application/json;charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, DELETE', 'Access-Control-Max-Age': '3600', 'Access-Control-Allow-Headers': 'x-requested-with'}
print(response.headers)

響應體(數(shù)據(jù))
a. 獲取二進制對應的原數(shù)據(jù)(數(shù)據(jù)本身是圖片紫皇、壓縮文件窗轩、視頻等文件數(shù)據(jù))

????content = response.content
????print(type(content))

b. 獲取字符類型的數(shù)據(jù)

????text = response.text
????print(type(text))

c. 獲取json數(shù)據(jù)(json轉(zhuǎn)換成python對應的數(shù)據(jù))

????json = response.json()
????print(type(json))
????print(json)

import requests
# 方法一: (既適用于get也適用于post)
url = 'https://www.apiopen.top/satinApi'
params = {'type': 1, 'page': 2}
response = requests.get(url, params)
print(response)

# 方法二: 只能用于get請求
url = 'https://www.apiopen.top/satinApi?type=1&page=1'
response = requests.get(url)
# print(response)
print(response.headers)

# 2)響應體(數(shù)據(jù))
# a.獲取二進制對應的原數(shù)據(jù)(數(shù)據(jù)本身是圖片栏豺、壓縮文件湿蛔、視頻等文件數(shù)據(jù))
content = response.content
print(type(content))

# b.獲取字符類型的數(shù)據(jù)
text = response.text
print(type(text))

# c.獲取json數(shù)據(jù)(json轉(zhuǎn)換成python對應的數(shù)據(jù))
json = response.json()
print(type(json))
print(json)

2. 進程

????每個進程默認都有一條線程抵知,這個線程叫主線程刷喜。其他線程叫子線程
????threading模塊中Thread的對象就是線程對象,當程序中需要子線程就創(chuàng)建Thread類的對象

import threading
from datetime import datetime
from time import sleep

def download(film_name):
    # film_name = '魔童降世'
    print('開始下載%s:%s' % (film_name, datetime.now()))
    print(film_name, threading.current_thread())
    sleep(5)
    print('%s下載結(jié)束:%s' % (film_name, datetime.now()))


if __name__ == '__main__':
    # download('魔童降世')
    # download('掃毒2')
    # download('怦然心動')

    # 1.創(chuàng)建線程對象
    """
    Thread(target=None,args=())  - 創(chuàng)建并且返回一個子線程對象
    target  -  函數(shù)類型(function), 在線程啟動的時候這個函數(shù)會在子線程中執(zhí)行
    args - 元祖,元祖中的元素就是target對應的函數(shù)在子線程中調(diào)用的時候傳的實參
    """
    t1 = threading.Thread(target=download, args=('魔童降世',))
    t2 = threading.Thread(target=download, args=('掃毒2',))
    t3 = threading.Thread(target=download, args=('怦然心動',))
    print(threading.current_thread())
    # 2.啟動線程
    """
    線程對象.start()  - 讓線程去執(zhí)行線程中的任務(wù)
   
    target(*args)
    """
    t1.start()
    t2.start()
    t3.start()

3. 程序結(jié)束

????線程中的任務(wù)執(zhí)行完成線程就結(jié)束; 程序出現(xiàn)異常結(jié)束的是線程恼布,不是進程
????進程中的所有線程就結(jié)束進程才結(jié)束;

3.1 聲明一個類繼承Thread

3.2 實現(xiàn)類中的run方法折汞,這個方法中的代碼就是需要在子線程中執(zhí)行的代碼

3.3 需要子線程的時候就創(chuàng)建自己聲明的類的對象爽待,并且不需要任何參數(shù)

from threading import *
from datetime import datetime
from  time import sleep


class DownloadThread(Thread):
    def __init__(self, film_name):
        super().__init__()
        self.film_name = film_name

    def run(self) -> None:
        print('開始下載%s:%s' % (self.film_name, datetime.now()))
        print(current_thread())
        sleep(5)
        print('%s下載結(jié)束:%s' % (self.film_name, datetime.now()))


if __name__ == '__main__':
    t1 = DownloadThread('魔童降世')
    t2 = DownloadThread('掃毒')

    t1.start()
    t2.start()
    print([1, 2, 3][10])

    print('==============')

4. join的用法

????線程對象.join() - 當前線程對象任務(wù)執(zhí)行完成后才能去執(zhí)行后面的代碼

from threading import *
from datetime import datetime
from time import *
from random import randint


def download(film_name):
    print('開始下載%s:%s' % (film_name, datetime.now()))
    sleep(randint(2, 7))
    print('%s下載結(jié)束:%s' % (film_name, datetime.now()))


if __name__ == '__main__':
    # 1.join的用法
    """
    線程對象.join()   -  當前線程對象任務(wù)執(zhí)行完成后才能去執(zhí)行后面的代碼
    """
    t1 = Thread(target=download, args=('魔童降世',))
    t2 = Thread(target=download, args=('掃毒2',))
    t3 = Thread(target=download, args=('怦然心動',))

    # 情況一:三個電影都下載完成才執(zhí)行'下載完成!!!'
    # t1.start()
    # t2.start()
    # t3.start()
    #
    # t1.join()
    # t2.join()
    # t3.join()
    # print('下載完成!!!!')

    # 情況二: 電影1下載完成后才開始同時下載電影2和電影3
    t1.start()
    t1.join()
    t2.start()
    t3.start()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末堕伪,一起剝皮案震驚了整個濱河市栗菜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌富俄,老刑警劉巖而咆,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暴备,死亡現(xiàn)場離奇詭異,居然都是意外死亡浅妆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摄欲,“玉大人疮薇,你說我怎么就攤上這事惦辛∨制耄” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵补履,是天一觀的道長箫锤。 經(jīng)常有香客問我,道長雨女,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任氛堕,我火速辦了婚禮,結(jié)果婚禮上讼稚,老公的妹妹穿的比我還像新娘括儒。我一直安慰自己,他們只是感情好帮寻,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赠摇,像睡著了一般固逗。 火紅的嫁衣襯著肌膚如雪浅蚪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天掘鄙,我揣著相機與錄音,去河邊找鬼收津。 笑死饿这,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的串结。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肌割,長吁一口氣:“原來是場噩夢啊……” “哼把敞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起榨惠,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奋早,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赠橙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耽装,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年期揪,在試婚紗的時候發(fā)現(xiàn)自己被綠了掉奄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡横侦,死狀恐怖挥萌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枉侧,我是刑警寧澤引瀑,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站榨馁,受9級特大地震影響憨栽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一屑柔、第九天 我趴在偏房一處隱蔽的房頂上張望屡萤。 院中可真熱鬧,春花似錦掸宛、人聲如沸死陆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽措译。三九已至,卻和暖如春饰序,著一層夾襖步出監(jiān)牢的瞬間领虹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工求豫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留塌衰,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓蝠嘉,卻偏偏與公主長得像最疆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子是晨,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • python中有一個第三方庫叫requests肚菠,提供了所有與http請求的相關(guān)函數(shù) get請求 '''get(ur...
    茅人閱讀 101評論 0 0
  • 1.線程 每個進程默認都有一條線程,這個線程叫主線程罩缴。其它線程叫子線程 threading模塊中Thread的對象...
    舉顆鳳梨閱讀 575評論 0 1
  • 網(wǎng)絡(luò)編程 1.socket socket又叫套接字蚊逢,指的是網(wǎng)絡(luò)通信的兩端,分別是服務(wù)器和客戶端 socket編程指...
    灬小魚兒zzZ閱讀 179評論 0 0
  • 一箫章、http python中有一個第三方庫叫'requests'中提供了所有和http請求相關(guān)的函數(shù)烙荷。 1.get...
    浩子_唯一號閱讀 307評論 0 1
  • 進程: 1個正在運行的應用程序。一定是運行狀態(tài)1.進程之間相互獨立2.運行在專用的受保護的內(nèi)存空間內(nèi)(運行內(nèi)存檬寂,內(nèi)...
    liuperson閱讀 154評論 0 0