原创 1.4.4 Cookies

cookie是存在客戶瀏覽器的一段文本。你可以通過Request.get_coookie()使用事先定義的cookie,也可以用Response.set_cookie()定義cookie: @route('/hello') def he

原创 1.3.0 REQUEST ROUTING(請求路由)

上一節中,我們創建了一個只有一個路由的web應用。回顧一下“Hello World”的路由部分: @route('/hello') def hello(): return "Hello World!" route()裝飾器將一個

原创 1.3.2 HTTP REQUEST METHODS(http 請求方式)

http 爲完成不同的任務定義了一些請求方式。GET方式是沒有指定方式時的默認方式。路由們默認會只匹配GET請求方式。爲了使用諸如POST,PUT,DELETE或是PATCH這些請求方式,只需在route()裝飾器中加一些關鍵字參數,或是

原创 1.4.0 GENERATING CONTENT(生成內容)

在純粹的WSGI中,你的應用能返回的數據類型很少。應用必須返回一個字符字符串的迭代。你可能要反回一個字符串(因爲字符串是可迭代的)但是這導致許多服務器一個字符一個字符的轉換你的內容。Unicode字符串更是不可使用。這不是很實用。 Bot

原创 1.2.0 Quickstart: "Hello World"(快速開始:“你好世界!”)

這個教程呢要求你先把Bottle給安裝好嘍。讓我們從最簡單的“Hello World”開始: from bottle import route, run @route('/hello') def hello(): return

原创 4.6. Defining Functions(定義函數)

我們可以定義一個函數求出任意範圍的斐波那契數列: >>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to

原创 1.5.0 REQUEST DATA(請求數據)

Cookies,HTTP頭部,HTML的<form>和其它的數據可以通過全局對象request請求。這個對象總會相應當前請求,即使在多線程環境下同時多個客戶端連接請求處理: from bottle import request, rout

原创 5.1.4. List Comprehensions(列表解析)

列表解析提供了一種創建新列表的簡潔方式。普遍的需求是創建新的列表一般通過遍歷另一個列表中的每個元素或是通過某些條件篩選出一些元素。 例如,假設我們想創建一個列表,像這樣: >>> squares = [] >>> for x in ran

原创 5.3. Tuples and Sequences(元組和序列)

我們發現列表(list)跟字符串(str)有很多相似的地方,比方說愛吃下標訪問和分片操作。事實上這兩種數據類型是7種序列數據類型(包括str,unicode,list,tuple,bytearray,buffer,xrnage)中的兩種。

原创 5.1.3. Functional Programming Tools(函數式編程工具)

有3個函數可以非常方便的處理 list:filter(),map(),和reduce()。 filter(function, swquence)返回一個序列,且序列中的每個元素item執行function(item)均返回true。如果

原创 5.2. The del statement(del 語句)

del 用來刪除列表中給定下標的元素。區別於序列的內置方法 pop(),del沒有返回值。del語句支持分片操作,可以一次刪除列表中的多個元素,甚至可以清空整個序列。例如: >>> a = [-1, 1, 66.25, 333, 333

原创 1.3.1 DYNAMIC ROUTES(動態路由)

有通配符的路由叫做動態路由(相對於靜態路由來說),動態路由可以匹配多個URL。一個簡單的通配符由一對尖括號和裏面的名字組成(比如 <name>),通配符由'/'分隔。例如,/hello/<name> 這個路由接收 /hello/alice

原创 1.4.1 STATIC FILES(靜態文件)

你可以直接返回文件對象,但是static_file()是一種更推薦的方式來提供靜態文件。它自動猜測出文件的類型,加入Last-Modified頭部,約束路徑到根目錄爲了安全起見,並且生成合適的錯誤響應(403是權限錯誤,404是丟失文件)

原创 1.3.3 ROUTING STATIC FILES(路由靜態文件)

靜態文件諸如圖片或是CSS文件不會自動添加。你得加一個路由跟一個回調函數來操控調用哪個文件且指明文件在哪裏: from bottle import static_file @route('/static/<filename>') def

原创 5.1.2. Using Lists as Queues(像隊列一樣)

用list實現隊列也是很簡單的,第一個添加的元素總是第一個出來;然而,用list實現隊列效率並不高,添加刪除元素會慢一些(因爲增刪第一個元素時後面的元素也得跟着移動)。 要是真想使用隊列,用 collections.deque這個類把,它