python论坛app_理解python web开发,轻松搭建web app!
大家好,今天分享給大家的是理解python web開發(fā),輕松搭建web app,希望大家學(xué)有所獲!
因為 python代碼的優(yōu)雅美觀且易于維護這一特點,越來越多的人選擇使用 Python做web開發(fā)。而 Python的 Web框架百花齊放,目前比較流行的框架有大包大攬的 Django,小巧靈活的 Flask、 Bottle,還有性能高效的異步框架 Tornado、 sanic。這么多框架只要選擇一個,閱讀他的文檔,就可以很輕松的搭建一個 web app,完全不需要去管他實現(xiàn)的原理。
本篇文章意在對一個web開發(fā)做一個梳理。
我們打開瀏覽器輸入一個網(wǎng)址 yukunweb.com,然后就看到了瀏覽器給我們顯示的頁面,這個時候打開瀏覽器開發(fā)者工具,點擊 Network,刷新頁面,會看到下方的請求的 url,點擊 Response,就可以看到服務(wù)器返回給瀏覽器的 html文件信息了。如果復(fù)制 Response響應(yīng)的內(nèi)容,保存為 index.html并且在瀏覽器打開,依然可以看到首頁的內(nèi)容,但是似乎缺少了一些頁面的樣式和功能。
這是因為當(dāng)瀏覽器接收到首頁的 HTML源碼后,它會根據(jù) HTML的規(guī)則去顯示頁面,然后再根據(jù) HTML里的鏈接,自動發(fā)送HTTP請求給服務(wù)器,拿到相應(yīng)的圖片,和 Java、 CSS等資源,最終顯示出一個完整的頁面。所以我們會在 Network下面能看到很多額外的以 .js, .css等后綴的請求了。
其實我們看到的頁面就是瀏覽器按照 HTML的規(guī)則,展示給我們的。 HTML告訴瀏覽器那里是導(dǎo)航,那里是主欄,那里是側(cè)欄。而這些信息如何顯示,或者是顯示的樣式,就是 CSS文件的功勞。至于比如導(dǎo)航的下拉隱藏上拉顯示就是 Java的作用。
如果想要做Web開發(fā),就一定得熟悉 HTML、 CSS、 Java三劍客的知識,這里推薦W3school的前端教程,也是我學(xué)習(xí)前端的地方:W3school
客戶端和服務(wù)器通信
理解了前段三劍客,就知道如何去寫一個網(wǎng)頁。那么從我們在瀏覽器的地址欄輸入 URL,到 Web頁面呈現(xiàn)出來到底經(jīng)歷了什么。
一般這種通過發(fā)送請求獲取服務(wù)器資源的Web瀏覽器,都可以稱為客戶端(client)。首先發(fā)送一個請求(request)給服務(wù)器,大多是以GET請求方式訪問,服務(wù)器接收到你的請求,然后取到請求的資源,返回給客戶端。
服務(wù)器和客戶端之間交流是怎么進行的呢,服務(wù)器是怎么理解客戶端的請求的呢。這里就需要一種協(xié)議規(guī)范,就是HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)。可以說, Web是建立在 HTTP協(xié)議上通信的。
仍然是之前的例子,打開瀏覽器訪問 yukunweb.com,打開瀏覽器開發(fā)者工具,點擊圖中標(biāo)記的選項卡(記得點view parsed),可以看到客戶端發(fā)給服務(wù)器的請求頭前兩行。
GET / HTTP/1.1Host: www.yukunweb.com
第一行開頭的GET表示請求訪問服務(wù)器的類型,稱為方法(method)。隨后的字符 /指明了請求訪問的資源對象,即請求URI。最后的 HTTP/1.1,即HTTP的版本號,用來提示客戶端使用的 HTTP協(xié)議功能。
綜上所述,第一行請求內(nèi)容的意思是:請求訪問某臺 HTTP服務(wù)器上的 /(首頁)頁面資源。所以第二行的 Host表示請求的域名也就是服務(wù)器所在地址。
如果是 POST請求的話,不僅會有請求頭部信息,還有一個 Form Data的請求實體內(nèi)容。
接收到請求的服務(wù)器呢,他會將請求內(nèi)容的處理結(jié)果以響應(yīng)的形式返回,看圖中的第一行:
開頭的部分仍然是服務(wù)器對應(yīng)的 HTTP版本,緊接著的 200 OK表示請求的處理結(jié)果的狀態(tài)碼 (status code) 和原因短語。 200狀態(tài)碼就表示響應(yīng)成功,常見的 404表示訪問錯誤, 500表示服務(wù)器響應(yīng)錯誤。這里的 OK是沒有固定的規(guī)則的,你也可以讓他返回 GOOD啥的。
下一行是服務(wù)器信息,本站用的是 Nginx服務(wù)器,在下一行顯示了創(chuàng)建響應(yīng)的日期時間。在下一行的 Content-Type表示內(nèi)容的類型,客戶端會依賴他判斷響應(yīng)的內(nèi)容是網(wǎng)頁還是音頻,圖片等類型。
總結(jié)
以上是生活随笔為你收集整理的python论坛app_理解python web开发,轻松搭建web app!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python决策树可视化_「决策树」|
- 下一篇: python替换缺失值_python 缺