一、什么是框架
框架的本質就是一個socket服務,可以完成不同主機之間的通信。它是一個半成品的項目,其中可能已經封裝好了基本的功能,比如路由,模型,模板,視圖功能都已完善,又可能它只封裝好了基本的路由功能,其他的所有都需要程序員來完善。
優點:節省了開發時間,節約了開發人力,提高了開發效率
二、框架的種類
目前python開發市場上最常用的有三大框架,Django,flask與tornado。其中,Django是最常用的,它是一個重量級框架,其中的大部分功能都已經被封裝完成,只需小小的邏輯代碼,即可上線運行。但也正因為這樣,Django框架相比較flask來說,比較臃腫,體態比較龐大,因此在一些小型網站的開發上,Django就顯得有些大材小用了。
flask是一種輕量級框架,其中只完成了基本的路由功能,其他的所有都需要程序員去完善,或者借用第三方模塊,因此,flask可以輕松應對小型網站的開發,但是對于大型網站,雖然也能實現功能,但是對程序員的程序功底要求的非常高。
區別:
Django使用app進行分模塊開發,flask使用藍圖進行模塊開發
Django使用的是MTV模式進行解耦合,flask沒有很好的完成解耦合
Django有自己的模板和路由和orm,沒有服務,使用的是wsgiref。
flask 只有自己的路由,模板使用jinja2。Orm使用的是flask-sqlalchemy 模塊。
flask是輕量級框架,只封裝了核心功能(路由),使用比較靈活。
注:
Django執行流程:
1.瀏覽器訪問應用
2.通過路由系統找到對應的視圖函數
3.對數據庫進行操作
4.返回頁面給瀏覽器。
三、框架的自定義
理解框架的底層是如何進行工作的,可以幫助我們更有效率的進行框架的使用。
在下面會進行逐步的說明,直至完成基本功能的實現
框架的本質:首先是基于socket進行服務端與客戶端的通信,下面的代碼是服務端,瀏覽器是客戶端。
import socket # 第一個參數代表基于網絡,第二個參數表示基于tcp協議 server_sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #注意需要是元組對象,兩個參數分別是url以及端口 server_sk.bind(('127.0.0.1', 9999)) #監聽,并且最多允許128臺客戶機同時連接 server_sk.listen(128) while True: print('等待客戶端的鏈接:') #客戶端發送過來的請求,是一個元組對象,將其進行解包 clinet_sk, addr = server_sk.accept() content = clinet_sk.recv(1024) # 默認是二進制內容 print(content) # 接收的到的內容是請求報文, #將接收到的二進制內容解碼為字符串 content = content.decode('utf-8') print(content) # 向瀏覽器發送內容 msg1 = 'HTTP/1.1 200 ok\r\n'.encode('utf-8') # 設置響應首行 msg2 = 'Content-Type:text/html;charset=utf-8\r\n'.encode('utf-8') # 設置響應頭 # 告訴瀏覽器,返回的是文本類型的html,并且以utf-8編碼進行解碼 msg3 = '\r\n'.encode('utf-8') # 響應空行 msg4 = '你好啊瀏覽器'.encode('utf-8') # 設置響應體 client_sk.send(msg1) client_sk.send(msg2) client_sk.send(msg3) client_sk.send(msg4) client_sk.close()
網頁標題:python中web框架的自定義創建-創新互聯
鏈接分享:http://m.kartarina.com/article34/dhgdse.html
成都網站建設公司_創新互聯,為您提供定制開發、標簽優化、品牌網站制作、手機網站建設、App設計、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯