程序的基本結構:第一個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動態參數生成的歡迎頁面。




發佈了39 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章