后端——>Django框架——>用Python寫的要想自己改Django,先得了解框架,學會mini-web框架,學mini-web框架,需要遵守WSGI協議要實現mini-web的流程
在sublime里Ctrl+h:全局替換
保證兩邊都close掉了,內存都被釋放掉,不然用戶一多就爆掉了進程之間都是獨立的,才需要;多線程是共享的,不需要;攜程也不需要一、面向對象的服務器
二、支持動態解析返回數據時不是直接返回——>需要組拼請求頭和請求體再返回請求頭里有User-Agent:(主要識別客戶所用的操作系統瀏覽器的版本)
? ? ? 1)User-Agent:爬蟲時一定要有
? ? ? 2)User-Agent會告訴網站服務器,訪問者是通過什么工具來請求的,如果是用戶瀏覽器,就會應答
以上遵循HTTP協議
三、服務器的框架解耦-支持框架的服務器
四、WGSI協議如何可以不修改服務器和架構代碼而確保可以在多個架構下運行web服務器呢?——WSGI
WSGI協議規定:
1.? 服務器調用框架時,必須告訴瀏覽器請求的是啥
2.? 框架在返回數據時規定怎么給
要想遵循協議,首先框架里必須要有一個可以直接調的函數,傳來的參數正常有兩個——一個是字典,另一個是函數(函數的引用)瀏覽器請求動態頁面過程
五、支持WGSI協議的服務器-字典傳參
body = mini_frame027.application(env, self.set_response_header) # 第69行黃色框
括號里的兩個參數分別是字典和函數
函數(, ,頭信息是一個列表)# 第86行紅色框
頭信息傳過來是列表,列表里的每一個元素是元組,元組里鍵值對,:前是鍵,:后是值
environ:一個包含所有HTTP請求信息的dict對象;
start_response:一個發送HTTP響應的函數。
六、給程序傳參數以字符串形式傳參:傳任何數據都以字符串形式對待端口被占用,程序運行不了解決方案:換端口
去web服務器導入,main方法運行程序
端口正確
實例化時把接收的端口port傳進去
init接收端口,綁定不能寫死,改為port
http服務器做成通用的好處:可以隨意調用哪個模塊下的哪個函數
? ? ? ? ? ? ? ?
作者:Agony_銳
鏈接:http://www.lxweimin.com/p/f799359df1c4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。