国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

簡單介紹Python的輕便web框架Bottle

2020-02-23 00:37:10
字體:
來源:轉載
供稿:網友

基本映射

映射使用在根據不同URLs請求來產生相對應的返回內容.Bottle使用route() 修飾器來實現映射.

from bottle import route, run@route('/hello')def hello():  return "Hello World!"run() # This starts the HTTP server

運行這個程序,訪問http://localhost:8080/hello將會在瀏覽器里看到 "Hello World!".
GET, POST, HEAD, ...

這個映射裝飾器有可選的關鍵字method默認是method='GET'. 還有可能是POST,PUT,DELETE,HEAD或者監聽其他的HTTP請求方法.

from bottle import route, request@route('/form/submit', method='POST')def form_submit():  form_data = request.POST  do_something(form_data)  return "Done"

動態映射

你可以提取URL的部分來建立動態變量名的映射.
 

@route('/hello/:name')def hello(name):  return "Hello %s!" % name

默認情況下, 一個:placeholder會一直匹配到下一個斜線.需要修改的話,可以把正則字符加入到#s之間:

@route('/get_object/:id#[0-9]+#')def get(id):  return "Object ID: %d" % int(id)

或者使用完整的正則匹配組來實現:

@route('/get_object/(?P<id>[0-9]+)')def get(id):  return "Object ID: %d" % int(id)

正如你看到的,URL參數仍然是字符串, 即使你正則里面是數字.你必須顯式的進行類型強制轉換.
@validate() 裝飾器

Bottle 提供一個方便的裝飾器validate() 來校驗多個參數.它可以通過關鍵字和過濾器來對每一個URL參數進行處理然后返回請求.

from bottle import route, validate# /test/validate/1/2.3/4,5,6,7@route('/test/validate/:i/:f/:csv')@validate(i=int, f=float, csv=lambda x: map(int, x.split(',')))def validate_test(i, f, csv):  return "Int: %d, Float:%f, List:%s" % (i, f, repr(csv))

你可能需要在校驗參數失敗時拋出ValueError.
返回文件流和JSON

WSGI規范不能處理文件對象或字符串.Bottle自動轉換字符串類型為iter對象.下面的例子可以在Bottle下運行, 但是不能運行在純WSGI環境下.

@route('/get_string')def get_string():  return "This is not a list of strings, but a single string"@route('/file')def get_file():  return open('some/file.txt','r')

字典類型也是允許的.會轉換成json格式,自動返回Content-Type: application/json.

@route('/api/status')def api_status():  return {'status':'online', 'servertime':time.time()}

你可以關閉這個特性:bottle.default_app().autojson = False
Cookies

Bottle是把cookie存儲在request.COOKIES變量中.新建cookie的方法是response.set_cookie(name, value[, **params]). 它可以接受額外的參數,屬于SimpleCookie的有有效參數.

from bottle import responseresponse.set_cookie('key','value', path='/', domain='example.com', secure=True, expires=+500, ...)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰来县| 高清| 诸城市| 商都县| 淮阳县| 焦作市| 保靖县| 通榆县| 霞浦县| 内江市| 上蔡县| 漠河县| 东明县| 思南县| 莎车县| 鄯善县| 海宁市| 偏关县| 辽阳县| 西吉县| 嘉兴市| 平南县| 土默特右旗| 运城市| 兴国县| 灵台县| 南陵县| 宾阳县| 东方市| 蓝田县| 洛川县| 普格县| 嘉禾县| 辽源市| 惠水县| 洞头县| 万宁市| 华坪县| 行唐县| 调兵山市| 龙游县|