1. 程式人生 > >程式的基本結構:第一個Flask程式

程式的基本結構:第一個Flask程式

在編寫第一個程式之前,首先有幾個概念需要知道:

1.初始化

所有的Flask程式都必須建立一個程式例項。程式例項是Flask類的物件,經常使用的建立程式碼為:

from flask import Flask

app=Flask(__name__)

Flask類的建構函式只有一個必須指定的引數,Flask用這個引數決定程式的根目錄,以便能找到相對於程式根目錄的資原始檔,這個引數為程式主模組或者包的名字。大多數程式中,Python的__name__變數就是所需的值。

2.路由和檢視函式

客戶端把請求傳送給web伺服器,web伺服器再把請求傳送給Flask程式例項,程式例項需要知道對每個URL請求執行的程式碼,所以儲存了一個URL和Python函式的對映關係。

路由:處理URL和函式之間關係的程式。Flask中最便捷的定義路由的方式是使用例項提供的app.route修飾器,把修飾的函式註冊為路由。

例:

@app.route('/')

def index():

return 'Hello world'

例子中把index()函式註冊為程式跟地址的處理程式。index()函式的返回值稱為響應,是客戶端接收到的內容。像index()這樣的函式稱為檢視函式

上面的例子路由為靜態,若定義為動態路由,則在路由中加入動態名字,如:

@app.route('/user/<name>')

def user(name):

return 'Hello, %s' % name

尖括號中的內容為動態部分,任何能匹配靜態部分的URL都會對映到這個路由上。路由中的動態部分預設使用字串,不過也可以使用型別定義,如:/user/<int:id>。Flask會將動態部分作為引數傳入函式。

3.啟動伺服器

程式例項中使用run方法來啟動Flask整合的開發web伺服器:

if __name__=='__main__':

app.run(debug=True)

伺服器啟動後,會進入輪詢,等待並處理請求。輪詢會一直執行,直到程式停止。

app.run()函式可以接收一些引數,以便設定web伺服器的操作模式。若想啟動除錯模式,則將debug設定為True。

一個完整的程式:hello.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello world'
@app.route('/user/<name>')#動態路由
def user(name):
    return 'hello %s ' % name

app.run(debug=True)
我的是使用pycharm工具,建立一個flask專案,確保hello.py執行且伺服器開啟後,在瀏覽器中訪問http://127.0.0.1:5000/,會出現一個Hello World歡迎介面。若訪問http://127.0.0.1:5000/user/sky,則出現一個使用name動態引數生成的歡迎頁面。