python 網(wǎng)絡(luò)編程
python網(wǎng)絡(luò)編程是關(guān)于使用python作為編程語(yǔ)言來(lái)處理計(jì)算機(jī)網(wǎng)絡(luò)需求。 例如,如果創(chuàng)建和運(yùn)行本地web服務(wù)器,或者從帶有模式的url自動(dòng)下載某些文件。
面向讀者
本教程適用于愿意使用python作為編程語(yǔ)言以簡(jiǎn)單易學(xué)的步驟學(xué)習(xí)網(wǎng)絡(luò)編程的計(jì)算機(jī)科學(xué)專業(yè)的畢業(yè)生以及軟件專業(yè)人士。
前提條件
在繼續(xù)本教程之前,應(yīng)該具有python編程語(yǔ)言編寫(xiě)代碼,使用任何python ide以及執(zhí)行python程序的基本知識(shí)。 如果您是python的新手,請(qǐng)參考 python教程以更好地理解熟悉python語(yǔ)言。
教程目錄
編號(hào) | 主題 | 描述 |
1 | python網(wǎng)絡(luò)編程簡(jiǎn)介 | python非常適合網(wǎng)絡(luò)編程領(lǐng)域。隨著云計(jì)算的增長(zhǎng),網(wǎng)絡(luò)編程已成為一個(gè)更加熱門(mén)的話題,而python扮演著重要的角色。 |
2 | python網(wǎng)絡(luò)編程開(kāi)發(fā)環(huán)境 | python 3適用于windows,mac os和大多數(shù)linux操作系統(tǒng)。,介紹如何在這些系統(tǒng)上安裝python3. |
3 | python internet協(xié)議模塊 | internet協(xié)議旨在在世界各地所有與internet連接的計(jì)算機(jī)上實(shí)現(xiàn)統(tǒng)一的地址系統(tǒng),并使數(shù)據(jù)包能夠從internet的一端傳輸?shù)搅硪欢恕?/td> |
4 | python ip地址 | python模塊ipaddress廣泛用于驗(yàn)證ip地址并將其分類為ipv4和ipv6類型。 它還可以用于比較ip地址值以及用于處理ip地址的ip地址算法。 |
5 | python dns查找 | 演示如何使用python模塊dnspython管理域名到ip地址的轉(zhuǎn)換,該模塊還提供了查找cname和mx記錄的方法。 |
6 | python路由 | 路由有助于更好地管理網(wǎng)頁(yè)的結(jié)構(gòu),并顯著提高網(wǎng)站的性能,并且進(jìn)一步的增強(qiáng)或修改將變得非常簡(jiǎn)單。 |
7 | python http請(qǐng)求 | 在python中使用requests模塊創(chuàng)建http請(qǐng)求,它是一個(gè)非常強(qiáng)大的模塊,除了簡(jiǎn)單的請(qǐng)求和響應(yīng)數(shù)據(jù)外,還可以處理http通信的許多方面。 它可以處理身份驗(yàn)證,壓縮/解壓縮,分塊請(qǐng)求等。 |
8 | python http響應(yīng) | web瀏覽器是客戶端,托管網(wǎng)站的計(jì)算機(jī)是服務(wù)器。 在收到客戶端的請(qǐng)求后,服務(wù)器會(huì)生成響應(yīng)并將其以某種格式發(fā)送回客戶端。 |
9 | python http標(biāo)頭 | 客戶端和服務(wù)器之間的請(qǐng)求和響應(yīng)涉及消息中的標(biāo)頭和正文。 標(biāo)頭包含特定于協(xié)議的信息,這些信息在通過(guò)tcp連接發(fā)送的原始消息的開(kāi)頭出現(xiàn)。 |
10 | python自定義http請(qǐng)求 | 超文本傳輸協(xié)議(http)是用于啟用客戶端和服務(wù)器之間的通信的協(xié)議,它用作客戶端和服務(wù)器之間的請(qǐng)求-響應(yīng)協(xié)議。 |
11 | python請(qǐng)求狀態(tài)代碼 | 響應(yīng)消息具有狀態(tài)碼。 它是一個(gè)三位數(shù)的整數(shù),狀態(tài)碼的第一位數(shù)定義了響應(yīng)的類別,而后兩位則沒(méi)有任何分類作用。 |
12 | python http驗(yàn)證 | 認(rèn)證是確定請(qǐng)求是否來(lái)自具有使用系統(tǒng)所需特權(quán)的有效用戶的過(guò)程。 |
13 | python http數(shù)據(jù)下載 | 演示如何使用處理ftp或文件傳輸協(xié)議的python模塊從serer下載數(shù)據(jù)。 |
14 | python連接重用 | python提供了urllib3模塊,該模塊具有一些方法來(lái)處理客戶端和服務(wù)器之間的連接重用。 |
15 | python網(wǎng)絡(luò)接口 | 在一臺(tái)機(jī)器上有多個(gè)接口時(shí),需要跟蹤它們的名稱,狀態(tài)等。python可以列出接口及其狀態(tài)。 |
16 | python socket程序 | python提供對(duì)特定應(yīng)用程序級(jí)網(wǎng)絡(luò)協(xié)議(例如ftp,http等)的更高級(jí)別訪問(wèn)的庫(kù)。 |
17 | python http客戶端 | 在http協(xié)議中來(lái)自客戶端的請(qǐng)求到達(dá)服務(wù)器,假定它是有效請(qǐng)求并獲取一些數(shù)據(jù)和元數(shù)據(jù)。 |
18 | python http服務(wù)器 | python標(biāo)準(zhǔn)庫(kù)帶有內(nèi)置的網(wǎng)絡(luò)服務(wù)器,可以通過(guò)程序分配端口號(hào),并通過(guò)該端口訪問(wèn)web服務(wù)器。 |
19 | python構(gòu)建url | python requests模塊可以幫助構(gòu)建urls并動(dòng)態(tài)處理url值。 |
20 | python web表單提交 | 與網(wǎng)頁(yè)的交互需要一些數(shù)據(jù)通過(guò)html頁(yè)面中的表單提交給服務(wù)器。requests模塊使用帶有所需參數(shù)的post方法優(yōu)雅地處理此問(wèn)題。 |
21 | python數(shù)據(jù)庫(kù)和sql | python編程語(yǔ)言具有用于數(shù)據(jù)庫(kù)編程的強(qiáng)大功能,python還支持?jǐn)?shù)據(jù)定義語(yǔ)言(ddl),數(shù)據(jù)操作語(yǔ)言(dml)和數(shù)據(jù)查詢語(yǔ)句。 |
22 | python telnet | 在python中,telnet由telnetlib模塊實(shí)現(xiàn),此模塊具有telnet類,該類具有建立telnet連接所需的方法。 |
23 | python電子郵件 | python具有emailmessage類,可用于構(gòu)建電子郵件。 此類是自定義電子郵件消息不同部分(如to和from標(biāo)記,主題行以及電子郵件內(nèi)容)所需的方法。 |
24 | python smtp | python提供的smtplib模塊中的smtp對(duì)象具有一個(gè)稱為sendmail的實(shí)例方法,該方法通常用于完成郵件的發(fā)送工作。 |
25 | python pop3 | pop3協(xié)議是用于從電子郵件服務(wù)器下載郵件信息的電子郵件協(xié)議。 |
26 | python imap | python的客戶端庫(kù)imaplib用于通過(guò)imap協(xié)議訪問(wèn)電子郵件。 |
27 | python ssh | ssh或安全套接字shell,是一種網(wǎng)絡(luò)協(xié)議,提供了一種訪問(wèn)遠(yuǎn)程計(jì)算機(jī)的安全方式。 |
28 | python ftp | ftp或文件傳輸協(xié)議是一種眾所周知的網(wǎng)絡(luò)協(xié)議,用于在網(wǎng)絡(luò)中的計(jì)算機(jī)之間傳輸文件。 |
29 | python sftp | ftp也稱為ssh文件傳輸協(xié)議。它是一種網(wǎng)絡(luò)協(xié)議,可通過(guò)任何可靠的數(shù)據(jù)流提供文件訪問(wèn),文件傳輸和文件管理。 |
30 | python web服務(wù)器 | python具有足夠的通用性,可以創(chuàng)建許多類型的應(yīng)用程序和驅(qū)動(dòng)互聯(lián)網(wǎng)或其他計(jì)算機(jī)網(wǎng)絡(luò)的程序。 |
31 | python上傳數(shù)據(jù) | 使用處理ftp或文件傳輸協(xié)議的python模塊將數(shù)據(jù)上傳到服務(wù)器。 |
32 | python代理服務(wù)器 | 代理服務(wù)器用于通過(guò)另一臺(tái)服務(wù)器瀏覽到某些網(wǎng)站,以便瀏覽保持匿名。 |
33 | python列出目錄 | python可用于從目錄獲取內(nèi)容列表。可以使用程序列出運(yùn)行python的同一臺(tái)計(jì)算機(jī)中目錄的內(nèi)容。 |
34 | python遠(yuǎn)程過(guò)程調(diào)用 | 遠(yuǎn)程過(guò)程調(diào)用(rpc)系統(tǒng)使我們可以使用在本地庫(kù)中調(diào)用函數(shù)時(shí)所使用的語(yǔ)法來(lái)調(diào)用遠(yuǎn)程服務(wù)器上可用的函數(shù)。 |
隨著python多年來(lái)作為一種編程語(yǔ)言的多功能性的發(fā)展,python也非常適合網(wǎng)絡(luò)編程領(lǐng)域。隨著云計(jì)算的增長(zhǎng),網(wǎng)絡(luò)編程已成為一個(gè)更加熱門(mén)的話題,而python扮演著重要的角色。以下是python用作網(wǎng)絡(luò)編程首選語(yǔ)言的幾個(gè)重要原因。
1. 套接字編程
套接字是客戶端和服務(wù)器之間進(jìn)行通信的連接。例如,當(dāng)打開(kāi)瀏覽器時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)套接字來(lái)與服務(wù)器連接。python有一個(gè)套接字模塊,可用于實(shí)現(xiàn)各種套接字功能,例如綁定地址或啟動(dòng)偵聽(tīng)器端口。套接字編程是計(jì)算機(jī)網(wǎng)絡(luò)的基礎(chǔ),而python可以很好地處理它。
2. 客戶端編程
客戶端是請(qǐng)求信息并等待響應(yīng)的計(jì)算機(jī)??梢跃帉?xiě)python程序來(lái)驗(yàn)證許多客戶端操作,例如解析url,在提交請(qǐng)求時(shí)使用url發(fā)送參數(shù),如果無(wú)法成功訪問(wèn)一個(gè)url則連接到備用url等。這些程序在客戶端程序中運(yùn)行,并且即使不使用瀏覽器,也可以處理與服務(wù)器的所有通信需求。例如,您可以提供python程序的url來(lái)下載文件,該url將由程序本身完成,而無(wú)需瀏覽器程序的幫助。
3. 構(gòu)建web服務(wù)器
python可以創(chuàng)建簡(jiǎn)單的web服務(wù)器,使其足以使用python作為編程語(yǔ)言來(lái)運(yùn)行網(wǎng)站。python已經(jīng)有一些內(nèi)置的web服務(wù)器,可以對(duì)其進(jìn)行調(diào)整以實(shí)現(xiàn)所需的一些其他功能。
simplehttpserver模塊提供了開(kāi)箱即用的web服務(wù)器功能,您可以從本地python安裝開(kāi)始運(yùn)行它。在python 3中,它的名稱為http.servercherrypy和tornado是用python編寫(xiě)的web服務(wù)器的示例,其運(yùn)行效果與非python知名的web服務(wù)器(如apache或ngnix)一樣好。
4. 網(wǎng)頁(yè)抓取
python出名的重要原因之一是它在抓取網(wǎng)絡(luò)所用的語(yǔ)言中占主導(dǎo)地位。它的數(shù)據(jù)結(jié)構(gòu)和網(wǎng)絡(luò)訪問(wèn)能力使其非常適合訪問(wèn)網(wǎng)頁(yè)并自動(dòng)下載其數(shù)據(jù)。而且,如果目標(biāo)網(wǎng)站有一些api連接可用,則python將通過(guò)其程序結(jié)構(gòu)更輕松地對(duì)其進(jìn)行處理。
5. python web框架
web frame通過(guò)提供預(yù)定義的結(jié)構(gòu)和模塊化,使應(yīng)用程序開(kāi)發(fā)變得輕松快捷。開(kāi)發(fā)人員必須進(jìn)行最少的編碼才能利用這些現(xiàn)有庫(kù)并進(jìn)行一些自定義以實(shí)現(xiàn)目標(biāo)。django和flask是兩個(gè)著名的公司,盡管它們是開(kāi)源的,但它們已經(jīng)在商業(yè)上得到了廣泛應(yīng)用。
6. 獲取地理位置
python具有處理地理數(shù)據(jù)的庫(kù)。如果知道緯度和經(jīng)度,則可以找到公司地址的名稱,反之亦然。當(dāng)然,它需要其他地圖提供商的數(shù)據(jù)(例如google地圖)的幫助。python的聯(lián)網(wǎng)功能可以擴(kuò)展到不同的地理邊界。