国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【python socket編程】—— 3.響應(yīng)

iOS122 / 1627人閱讀

摘要:前文編程解析請(qǐng)求頭的框架和解析請(qǐng)求的類我們都寫好了,現(xiàn)在唯一要做的就是處理相應(yīng)?;貜?fù)響應(yīng)的原理就是這樣,后續(xù)每增加一個(gè)路徑,就在字典中增加一條及增加一個(gè)對(duì)應(yīng)的響應(yīng)函數(shù)。下一篇文章編程實(shí)現(xiàn)函數(shù)

前文:【python socket編程】—— 2.解析http請(qǐng)求頭


web的框架和解析請(qǐng)求的Request類我們都寫好了,現(xiàn)在唯一要做的就是處理相應(yīng)。編寫一個(gè)route_dict字典,keyurl路徑,value是對(duì)應(yīng)這個(gè)url的相應(yīng)函數(shù),并使用response_for_request作為唯一的接口接受請(qǐng)求,并從route_dict獲取對(duì)應(yīng)的函數(shù),如下:

route_dict = {
    "/": route_index,
}


def response_for_request(request):
    path = request.parse_path()[0]
    return route_dict.get(path, error_handle)(request)

當(dāng)請(qǐng)求"/"時(shí),response_for_request根據(jù)request解析到"/"這個(gè)path,然后從route_dict得到route_index這個(gè)函數(shù),最后返回route_index(request)的結(jié)果。route_index需要按照http響應(yīng)的格式返回字節(jié)數(shù)據(jù),例如:

HTTP/1.1 200 OK 
Content-Type: text/html




    
    INDEX


Index Page

與請(qǐng)求的格式類似,第一行HTTP/1.1 200 OK分別表示協(xié)議、狀態(tài)碼和狀態(tài),Content-Type: text/htmlheader中的key: value形式的內(nèi)容,這里只有一行,常見的還有Set-Cookie、Content-Length等;然后是空行;最后就是html頁面的內(nèi)容。假設(shè)以上內(nèi)容都以str的形式放在response變量中,那么route_index可以寫成:

def route_index(request):
    print("Request: ", request.content)
    response = "..." # 上文的內(nèi)容,省略 
    print("Response: ", response)
    return response.encode(encoding="utf-8")

此時(shí)運(yùn)行runserver,在瀏覽器輸入url,就可以看到內(nèi)容Index Page。


回復(fù)響應(yīng)的原理就是這樣,后續(xù)每增加一個(gè)路徑,就在字典中增加一條item及增加一個(gè)對(duì)應(yīng)的響應(yīng)函數(shù)。當(dāng)用戶請(qǐng)求的路徑不在route_dict中時(shí),就返回error_handle這個(gè)函數(shù),我們只要讓它返回類似404 NOT FOUND之類的內(nèi)容就可以了。


下一篇文章:【python socket編程】—— 4.實(shí)現(xiàn)redirect函數(shù)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/41321.html

相關(guān)文章

  • python socket編程】—— 4.實(shí)現(xiàn)redirect函數(shù)

    摘要:原理就是當(dāng)瀏覽器接受到服務(wù)器響應(yīng)的狀態(tài)碼是或者時(shí),表示請(qǐng)求的頁面已經(jīng)永久或臨時(shí)性轉(zhuǎn)移到了新的位置,而這個(gè)新的位置儲(chǔ)存在響應(yīng)的里這個(gè)字段。 前文:【python socket編程】—— 3.響應(yīng) 在Flask框架中有一個(gè)redirect函數(shù),用于實(shí)現(xiàn)頁面的跳轉(zhuǎn),現(xiàn)在我們來實(shí)現(xiàn)它。原理就是:當(dāng)瀏覽器接受到服務(wù)器響應(yīng)的狀態(tài)碼是301或者302時(shí),表示請(qǐng)求的頁面已經(jīng)永久或臨時(shí)性轉(zhuǎn)移到了新的位...

    heartFollower 評(píng)論0 收藏0
  • python socket編程】—— 5.實(shí)現(xiàn)cookie和session

    摘要:前文編程實(shí)現(xiàn)函數(shù)的實(shí)現(xiàn)很簡(jiǎn)單,在服務(wù)器返回的響應(yīng)中,里增加,瀏覽器接受到中的,下次訪問這個(gè)網(wǎng)站的請(qǐng)求中就會(huì)帶上這個(gè)。此時(shí)服務(wù)端解析,根據(jù)就知道當(dāng)前用戶是登陸狀態(tài)的。顯然,直接在里寫用戶的是不安全的。下一篇文章編程簡(jiǎn)單實(shí)現(xiàn)和密碼 前文:【python socket編程】—— 4.實(shí)現(xiàn)redirect函數(shù) cookie的實(shí)現(xiàn)很簡(jiǎn)單,在服務(wù)器返回的響應(yīng)中,header里增加Set-Cook...

    lykops 評(píng)論0 收藏0
  • python socket編程】—— 2.解析http請(qǐng)求頭

    摘要:請(qǐng)求頭的換行使用的是。編寫一個(gè)類,來解析請(qǐng)求的方法路徑和,如下下一篇文章編程響應(yīng) 前文:【python socket編程】—— 1.初探 在上一篇文章中我們知道,socket.accept()接受的數(shù)據(jù)是請(qǐng)求頭,請(qǐng)求頭格式是這樣的: POST /login HTTP/1.1 Host: 127.0.0.1:1207 User-Agent: Mozilla/5.0 (X11; Ubunt...

    韓冰 評(píng)論0 收藏0
  • python socket編程】—— 1.初探

    摘要:從導(dǎo)入相應(yīng)函數(shù),即傳入一個(gè)上一步中的類,返回對(duì)應(yīng)的網(wǎng)頁內(nèi)容,具體實(shí)現(xiàn)將在后續(xù)講解。后續(xù)只要去處理解析請(qǐng)求和響應(yīng)部分即可,主程序可以不用再修改。下一篇文章編程解析請(qǐng)求頭 Flask或者其他框架都是封裝的比較完善,我們可以不去關(guān)注路由、SESSION等到底是怎么實(shí)現(xiàn)的,現(xiàn)在我們使用socket來實(shí)現(xiàn)一個(gè)帶有注冊(cè)、登錄功能的To do網(wǎng)站,這樣能對(duì)后端框架了解的稍微更深入一點(diǎn)(當(dāng)然你也可以直...

    int64 評(píng)論0 收藏0
  • [譯]Python 中的 Socket 編程(指南)

    摘要:當(dāng)一個(gè)客戶端連接時(shí),它將返回一個(gè)新的對(duì)象,對(duì)象中有表示當(dāng)前連接的和一個(gè)由主機(jī)端口號(hào)組成的連接的元組,更多關(guān)于元組值的內(nèi)容可以查看地址族一節(jié)中的詳情這里必須要明白我們通過調(diào)用方法擁有了一個(gè)新的對(duì)象。 博客原文: https://keelii.com/2018/09/24/socket-programming-in-python/ 說明 本書翻譯自 realpython 網(wǎng)站上的文章教程 ...

    sushi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<