1. 程式人生 > >一個簡單的flask應用

一個簡單的flask應用

啟動服務 show 裝飾 hello 調試器 href deb ref 動態變量

一個簡單的flask應用,文件名hello.py

技術分享
from flask import Flask
app = Flask(__name__)

@app.route(‘/‘)
def hello_world():
    return ‘Hello World!‘

if __name__ == ‘__main__‘:
    app.run()
技術分享
1.引入Flask類,Flask類實現了一個WSGI應用;
2.app是Flask的實例,它接收包或者模塊的名字作為參數,但一般都是傳遞__name__
3.app.route裝飾器會將URL和執行視圖函數的關系保存到app.url_map屬性上;
4.內置變量__name__判斷表示import該模塊不會執行(__name__執行該程序時候為__main__,import時候為模塊文件名),
執行app.run就可以啟動服務了,默認Flask只監聽虛擬機的本地127.0.0.1這個地址,端口為5000。

ps:1.調試模式

  雖然 run() 方法適用於啟動本地的開發服務器。如果你啟用了調試支持,服務器會在代碼修改後自動重新載入,並在發生錯誤時提供一個相當有用的調試器。有兩種途徑來啟用調試模式。

一種是直接在應用對象上設置:

app.debug = True

app.run()

另一種是作為 run 方法的一個參數傳入:

app.run(debug=True)

   2.路由

  route()裝飾器把一個視圖函數綁定到一個URL上,也可以構造動態的URL或者一個路由上面綁定多個URL。

2.1.變量規則

在給URL綁定動態變量時,動態的字段以<variable_name>,這部分作為命名參數部分傳遞到函數。規則可以用 <converter:variable_name>

指定一個可選的轉換器。

app.route(app/<username>)
def show_user_info(username):
    return "User %s" % username #User對象
app.route(app/<int:userid>):
    return "User %s" % userid

  轉換器有下面幾種:

  int 接受整數

  float 同int,但是接受浮點數

  path和默認的相似,但是接受斜線

2.2.唯一 URL / 重定向行為

  Flask 的 URL 規則基於 Werkzeug 的路由模塊。這個模塊背後的思想是基於 Apache 以及更早的 HTTP 服務器主張的先例,保證優雅且唯一的 URL。

2.3 構造 URL

  url_for() 來給指定的函數構造 URL。它接受函數名作為第一個參數,也接受對應 URL 規則的變量部分的命名參數。未知變量部分會添加到 URL 末尾作為查詢參數。

  2.4http方法

app.route("app/index",methods=[GET,POST])
def login():
    if request.method==POST:
        login()
    else:
        show_login_error()

  默認情況下,路由只回應 GET 請求,但是通過 route() 裝飾器傳遞 methods 參數可以改變這個行為。GET:瀏覽器告知服務器:只 獲取 頁面上的信息並發給我。這是最常用的方法。POST:瀏覽器告訴服務器:想在 URL 上 發布 新信息。並且,服務器必須確保 數據已存儲且僅存儲一次。這是 HTML 表單通常發送數據到服務器的方法。

一個簡單的flask應用