官术网_书友最值得收藏!

1.3 一個簡單的Web程序

Flask項目創建之后會包含一個簡單的Web程序,本節講解這個簡單的項目都包含了什么內容,這些內容有哪些作用。

1. 應用初始化

所有Flask程序在創建時都必須先創建一個應用實例,也就是進行應用初始化。對應的程序代碼如下。

from flask import Flask
# 應用的初始化
app = Flask(__name__)

應用實例創建之后,才可以對路由及視圖函數進行綁定。此處的“__name__”用于獲取當前代碼文件的文件名。

2. 運行應用

程序最后的代碼用于啟動服務器,運行應用實例。對應代碼如下。

# 啟動服務器
if __name__ == '__main__':
app.run(debug=True)

此處的“__name__ == '__main__'”用于判斷當前文件是否直接被運行。

如果需要開啟調試模式,可以在app.run()方法中添加debug參數。

3. 路由與視圖

在用戶使用瀏覽器訪問網頁的過程中,瀏覽器首先會發送一個請求到服務器,服務器接收到請求之后,會將請求轉交給Flask進行處理。Flask會對用戶所訪問的URL進行解析,然后找到相應的響應內容,將其返回到瀏覽器。

路由用于使Flask知道URL對應的內容在哪里。

回到運行之前的代碼,可以看到有一個函數被裝飾器app.route裝飾,這個裝飾器用于定義路由,確定URL與Python函數之間的映射。對應代碼如下。

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

被路由裝飾器裝飾的函數便是視圖函數,用于返回用戶請求URL的相應響應內容。此處返回的響應內容可以是簡單的字符串,也可以是復雜的HTML頁面。

如果仔細觀察平時所訪問的URL,會發現其中很多地方都存在可變的部分。例如,在GitHub用戶頁面的URL(https://github.com/<username>)中,用戶名作為參數被包含在內;而在Flask中,可以簡單地實現這種風格的路由綁定。

接下來,嘗試實現上面所描述的效果,以下是所需的代碼。

@app.route('/user/<username>')
def user(username):
return 'This is %s' % username

上述代碼中的視圖函數包含了username參數,當用戶訪問“/user/用戶名”頁面時,URL中username占位符的數據會傳遞到username參數中,最后視圖函數返回相應用戶的信息。

代碼輸入完后可以單擊按鈕運行應用,來測試效果。

當訪問服務器下的“/user/HsOjo”頁面時,服務器返回了動態生成的“This is HsOjo”響應信息,如圖1-3-1所示。同理,訪問“/user/Test”則會返回“This is Test”。

圖1-3-1 用戶頁面

在本節中,如果對操作過程有疑問,可跟隨右側視頻進行操作。

一個簡單的Web程序

主站蜘蛛池模板: 汉中市| 云霄县| 永仁县| 浏阳市| 雅安市| 大化| 文化| 黔西| 茂名市| 宝应县| 通州区| 陆良县| 新密市| 新营市| 南华县| 泗洪县| 朝阳县| 大新县| 吕梁市| 新龙县| 镇巴县| 齐齐哈尔市| 棋牌| 东平县| 邹城市| 桓仁| 平度市| 天峨县| 福泉市| 门源| 孝义市| 永康市| 高州市| 惠东县| 吉隆县| 鲜城| 道真| 同仁县| 临汾市| 梁河县| 西林县|