1. 程式人生 > >python web py入門-4-請求處理(上)

python web py入門-4-請求處理(上)

       這篇我們來介紹一下請求處理過程。其實,在前面python中requests做介面自動化的系列講過請求和響應。伺服器需要對客戶端傳送的請求,進行解析和處理。我們在前面文章介紹的URL對映,每次輸入新的URL都是一次傳送請求的過程。在cmd裡可以看到這些請求的記錄。

1. 用客戶端合肥伺服器的圖形表示如下

       文字解釋下,一開始瀏覽器給伺服器傳送一個請求,請求資料主要由請求行,head,body組成。如果是post請求,requset line裡面只有地址沒有引數,引數放在了body裡面。如果是get請求,request line裡面包括URL和介面引數拼接在後面。body就是空。同樣響應內容也有響應行,頭部,body三部分組成。

2.程式碼實現請求處理

在web.py中請求引數獲取是用方法web.input(); 請求頭資訊是用方法: web.ctx.env

我們做一個123.html的表單,方便待會測試POST請求

<html>
	<head>
		<title>hello 123</title>
	</head>
	<body>
		<h1>POST</h1>
		<form action="/blog/123" method="POST">
			<input type="text" name="id" value=""/>
			<input type="password" name="password" value=""/>
			<input type="submit" value="submit">
		</form>
	</body>

</html>

       然後我們修改下hello.py內容,主要是增加get和post方法獲取引數。hello.py和123.html兩個檔案需要放在同一個目錄下,例如桌面。
import web
        
urls = (
	'/index', 'index',
	'/blog/\d+', 'blog',
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        return open(r'123.html').read()

class index:
	def GET(self):
		query = web.input()
		return query

class blog:
	def POST(self):
		data = web.input()
		return data

if __name__ == "__main__":
    app.run()

2.測試效果

先來看看,瀏覽器訪問http://127.0.0.1:8080/index?name=Anthony&city=Beijing,然後回車。

可以看到,獲取到了get方法的引數。

再看看post請求引數獲取,我們瀏覽器輸入如下圖,輸入使用者名稱和密碼。


點選提交之後,可以獲取到剛剛輸入的值。

通過上面的舉例,我們驗證了web.py GET和POST是如何獲取請求引數的。

相關推薦

python web py入門-4-請求處理

       這篇我們來介紹一下請求處理過程。其實,在前面python中requests做介面自動化的系列講過請求和響應。伺服器需要對客戶端傳送的請求,進行解析和處理。我們在前面文章介紹的URL對映,

spring之我見--Controller註冊到DispatchServlet請求處理

對應上一章 《spring之我見–從spring的啟動到ioc容器的建立》 今天我們探討一下Springmvc的工作原理,Springmvc的核心是Controller請求部分,所以我們的探討從Controller被註冊開始,到Controller如何被請求的。 1.Contro

python web py入門31- javascript的邏輯處理

前面已經學習過比較處理,現在要學習一種邏輯處理操作,這種操作其實在日常生活裡非常多,比如你過馬路時,就要看紅綠燈,當紅燈亮起,其實就表示布林狀態為true,熄滅就表示為false。又比如你家裡按下電燈的

python web py入門58- jQuery

在前面已經學習過多個JS模組,這樣方便管理程式碼,維護程式碼,但時這樣分開時,必須要考慮載入不同檔案之間的順序,這是比較頭痛的問題,有沒有好的方法解決呢?這時,就要使用RequireJS庫了,它是一個JS檔案和模組載入器,它是一個在瀏覽器優化的模組載入器,主要改善了載入的速度

python web py入門12- 實現使用者登入論壇

前面已經介紹了怎麼註冊使用者,當用戶註冊成功之後,就需要使用帳號進行登入,這個登入過程是怎麼樣實現的呢?首先是要有一個登入的連線,通過首頁點選登入,就會進入登入的URL連線:http://127.0.0.1:8080/login,當你在網頁上點選之後,就會在WEBPY的應用處

python web py入門17- 開啟chrome的開發工具視窗

在前面已經介紹了怎麼樣安裝chrome瀏覽器,安裝完成之後,你可以開啟它了。如下圖所示:然後在位址列裡輸入:about:blank, 就會開啟一個空白的視窗。接著來開啟它一個很重要的工具,就是開發工具視

python web py入門15- javascript指令碼有什麼用?

JavaScript是世界上最流行的指令碼語言,因為你在電腦、手機、平板上瀏覽的所有的網頁,以及無數基於HTML5的手機App,互動邏輯都是由JavaScript驅動的。簡單地說,JavaScript是一種執行在瀏覽器中的解釋型的程式語言.JavaScript 是屬於網路的指

python web py入門41- 頁面事件的onload事件

在前面學習了函式,函式可以在很多地方複用,但是在頁面裡嵌入JS是由事件觸發執行的,因此基於瀏覽器的JS開發,基本上就是響應事件處理。HTML4 增加了使事件在瀏覽器中觸發動作的能力,比如當用戶點選元素時

python web py入門-3-URL對映

       本文介紹URL對映,在介紹對映之前,我們先了解下什麼是URL? URL(Uniform/Universal Resource Locator的縮寫,統一資源定位符)是對可以從網際網路上得

spring之我見--Controller註冊到DispatchServlet請求處理

1 DispatcherServlet請求分發 1.1 DispatcherServlet的初始化 在web.xml檔案裡,跟ContextLoaderListener形影不離的應該就是DispatcherServlet了,它一般做如下定義: <servlet>

Python Web開發相關的面試題Django

Python Web開發相關的面試題(Django ) 解釋一下 WSGI 和 FastCGI 的關係? CGI全稱是“公共閘道器介面”(CommonGateway Interface),HTTP伺服器與你的或其它機器上的程式進行“交談”的一種工具,其程式須執行在網路伺服器上。 CGI可

Python web 開發】使用者註冊功能2

我們繼續來完善使用者的註冊功能 註冊的時候前端post過來 手機號,驗證碼,密碼,而密碼和驗證碼我們只需要在serialzers 裡面驗證用,不需要序列化返回給前端 正常的serialzers  是怎樣的邏輯呢? 我們來看下CreateModelMixin 的原始碼  

python進階—OpenCV之影象處理

文章目錄 影象形態變換 影象的腐蝕 影象的膨脹 影象的開操作 影象的閉操作 影象的形態學梯度 影象的頂帽操作 影象的黑帽操作 影象的梯度(Image Gradients) So

python進階—OpenCV之影象處理

文章目錄 顏色空間轉換 RGB色彩空間 HSV色彩空間 YUV色彩空間 簡單的物體跟蹤示例 HSV空間目標閾值選取 影象幾何變換 影象的縮放 影象的位移 影象的旋轉 影

不是你無法入門自然語言處理NLP,而是你沒找到正確的開啟方式

AI研習社按:本文作者 Mr.Scofield,原文載於作者個人部落格,雷鋒網已獲授權。 〇、序 之前一段時間,在結合深度學習做 NLP 的時候一直有思考一些問題,其中有一個問題算是最核心一個:究竟深度網路是怎麼做到讓各種 NLP 任務解決地如何完美呢?到底我的資料在

最好的入門自然語言處理NLP的資源清單

Melanie Tosik目前就職於旅遊搜尋公司WayBlazer,她的工作內容是通過自然語言請求來生產個性化旅遊推薦路線。回顧她的學習歷程,她為期望入門自然語言處理的初學者列出了一份學習資源清單。 目錄: ·  線上課程 ·  圖書館和開放資源 ·  活躍的

資料科學學習手札108Python+Dash快速web應用開發——靜態部件篇

> 本文示例程式碼已上傳至我的`Github`倉庫[https://github.com/CNFeffery/DataScienceStudyNotes](https://github.com/CNFeffery/DataScienceStudyNotes) # 1 簡介    這是我的系列教程**Pyt

Netty事件監聽和處理

事件處理 多路復用 linu 自定義事件 性能 cdn 處理請求 fancybox 客戶 陪產假結束了,今天又開始正常上班了,正好趕上米粉節活動,又要忙上一陣了,米粉節活動時間為4.03 - 4.10,有不少優惠,感興趣的可以關註mi.com或小米商城app。 今天

python配置MYSQL基於pycharm+mysql+sqlyog

** python配置MYSQL(上) ** 基於pycharm、mysql、sqlyog,進行資料庫操作。菜鳥在慕課慕課網學習python系列語法,及pycharm/mysql/python/sqlyog等的相關配置。基於瘋狂的螞蟻Crazyant的教程,完成mysql例項配置,並

程世東老師TensorFlow實戰——個性化推薦,程式碼學習筆記之資料匯入&資料預處理

程式碼來自於知乎:https://zhuanlan.zhihu.com/p/32078473 /程式碼地址https://github.com/chengstone/movie_recommender/blob/master/movie_recommender.ipynb 下一篇有一些資料的