第二章 程式的基本結構

2021-08-09 12:34:10 字數 2019 閱讀 6378

所有flask程式都必須建立乙個程式例項。

web伺服器使用一種名為web伺服器閘道器介面(web server gateway inte***ce,wsgi)的協議,把接收自客戶端的所有請求都轉交給這個物件處理。程式例項是flask類的物件,經常使用下述**建立:

from flask import flask
flask類的建構函式只有乙個必須指定的引數,即程式主模組或包的名字。在大多數程式中,python的name變數就是所需的值。

defindex

():return

''

如上**即把**的根目錄(用/表示)和index()函式繫結在一起,即訪問**首頁時,會獲得函式index()返回的內容。這裡的index()被稱為檢視函式

動態url可以根據url中引數的不同而返回不同的頁面內容。在flask中可以通過修飾器實現這一功能:

defuser

(name):

return

'' % name

尖括號中的內容就是動態部分。呼叫檢視函式時,flask會將動態部分作為引數傳入函式。 路由中的動態部分預設使用字串,不過也可以使用型別定義。

eg- 路由/user/只會匹配動態片段id為整數的url。

flask支援在路由中使用int、float、path型別,path型別也是字串,但不把斜線視為分隔符,而將其當作動態片段的一部分。

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

if __name__ == '__main__': '''當模組被直接執行時,以下**塊將被執行,當模組是被匯入時,**塊不被執行'''
在run函式中設定debug=true可以啟用除錯模式,在伺服器啟動後,會進入輪詢,直到程度停止。

from flask import flask

defindex

():return

''if __name__ == '__main__':

然後使用下述命令啟動程式:

(venv) $ python hello.py

* running on

.0.1:5000/

* restarting with reloader

訪問 .0.1:5000/

使用flask-script擴充套件後,可以通過命令列引數的形式將引數傳遞給flask的開發web伺服器 可通過以下命令安裝該擴充套件:

(venv) $ pip install flask-script
flask-script擴充套件的使用示例

from flask import flask

from flask import make_response

from flask.ext.script import manager

defindex

():return

''def

user

(name):

return

'' % name

defresponse

(): response = make_response('')

response.set_cookie('answer', '42')

return response

if __name__ == '__main__':

manager.run()

此時,執行python hello.py可得到乙個使用提示。主要使用方法有兩個:runserver和shell,前者用於啟動web伺服器,後者用於啟動python shell用於維護任務和除錯。可分別通過以下命令執行:

python hello.py runserver

python hello.py shell

執行python python hello.py runserver --help可獲得更多幫助資訊

第二章 程式控制結構

if語句是用來判定所給定的條件是否滿足,根據判定的結果 真或假 決定執行給出的兩種操作之一。if語句的三種形式 格式 if expression 格式 if expression 形式三 格式 說明 if後面的表示式型別任意 語句可以是復合語句 例2 輸入兩個實數,按數值由小到大的次序輸出這兩個數。...

第二章 程式控制結構

2.1 選擇控制 2.1.1 if語句 if語句是用來判定所給定的條件是否滿足,根據判定的結果 真或假 決定執行給出 的兩種操作之一。形式1 格式 if expression statement1 else statement2 例如 if x y max x else max y 形式2 格式 i...

第2章程式的基本結構

2.1初始化 使用如下 建立乙個程式例項 from flask import flask 2.2路由和檢視函式 def index return 稱index 為檢視函式,其返回的響應可以是包含html的簡單字串,也可以是複雜的表單。但一般不在python 中嵌入響應字串,因為會導致 難以維護。支援...