Bottle是一款Python的微型Web框架。它的核心代碼只有一個文件,但支持路由、模板、靜態(tài)文件服務(wù)、中間件、請求和響應(yīng)對象等特性。它還提供了一個Built-in HTTP服務(wù)器,可以在不依賴其它軟件的情況下運行應(yīng)用。
Bottle支持生成和解析JSON格式數(shù)據(jù)。我們可以發(fā)送JSON數(shù)據(jù)到服務(wù)器,也可以從服務(wù)器獲取JSON數(shù)據(jù)。以下是如何使用Bottle發(fā)送JSON POST請求:
import requests
data = {"name": "John", "age": 30}
response = requests.post('http://localhost:8080/data',
json=data)
print(response.content)
在上面的代碼中,我們使用了Python的requests庫向服務(wù)器發(fā)送JSON POST請求。我們將POST請求的JSON數(shù)據(jù)存儲在data變量中,并使用json參數(shù)將其傳遞給post()方法。這樣,requests會把data自動序列化為JSON格式。如果服務(wù)器端使用Bottle框架接受JSON數(shù)據(jù),則可以方便地使用Bottle提供的request.json屬性獲取這些數(shù)據(jù)。
from bottle import request
@route('/data', method='POST')
def data():
data = request.json
return {"status": "success", "data": data}
在上面的代碼中,我們編寫了一個路由函數(shù),它將接收從前端發(fā)送過來的JSON數(shù)據(jù)。當請求到達服務(wù)器端時,Bottle會自動將JSON數(shù)據(jù)解析成Python字典,并將其存儲在request.json屬性中。我們可以將數(shù)據(jù)從request.json中提取出來,然后進行相應(yīng)的處理。在這個例子中,我們簡單地將數(shù)據(jù)再轉(zhuǎn)換成JSON格式字符串,然后將其返回給前端。
通過上述代碼示例,我們可以很容易地使用Bottle框架向服務(wù)器發(fā)送JSON POST請求,以及在服務(wù)器端接收JSON數(shù)據(jù)。Bottle的簡單易用使得它成為Python Web框架中的佼佼者。