第2章程式的基本結構

2021-08-02 08:30:31 字數 2409 閱讀 3046

2.1初始化

使用如下**建立乙個程式例項:

from flask import flask

2.2路由和檢視函式

def index():

return ''

稱index()為檢視函式,其返回的響應可以是包含html的簡單字串,也可以是複雜的表單。但一般不在python**中嵌入響應字串,因為會導致**難以維護。

支援動態名字的路由:

def user(name):

return ''

if __name__ == '__main__':

再用python hello.py執行程式,再開啟瀏覽器,輸入

示例2-2包含動態路由的flask程式

from flask import flask

def index():

return ''

def user(name):

return '' % name

if __name__ == '__main__':

2.5請求-響應迴圈

2.5.1程式和請求上下文

其實沒搞懂

2.5.2請求排程

2.5.3請求鉤子

#搞不懂

flask 支援以下 4 種鉤子:

before_first_request:註冊乙個函式,在處理第乙個請求之前執行。

before_request :註冊乙個函式,在每次請求之前執行。

after_request :註冊乙個函式,如果沒有未處理的異常丟擲,在每次請求之後執行。

teardown_request :註冊乙個函式,即使有未處理的異常丟擲,也在每次請求之後執行。

2.5.4響應

#繼續搞不懂

http 響應中乙個很重要的部分是狀態碼,flask 預設設為 200,這個**表明請求已經被成功處理。

如果檢視函式返回的響應需要使用不同的狀態碼,那麼可以把數字**作為第二個返回值,新增到響應文字之後。例如,下述檢視函式返回乙個 400 狀態碼,表示請求無效:

def index():

return '', 400

make_response() 函式可接受 1 個、2 個或 3 個引數(和檢視函式的返回值一樣),並返回乙個 response 物件。

2.6flask擴充套件

使用flask-script支援命令列選項

用quit()回到虛擬環境。

示例2-3

from flask.ext.script import manager

from flask import flask

def index():

return ''

def user(name):

return '' % name

if __name__ == '__main__':

manager.run()

執行後:

提示 from flask.ext.script import manager 已過時,修改為from flask_script import manager

執行後如圖:

用host引數,本機內網ip為192.168.0.103,手機ip192.168.0.100。手機可以成功訪問:

第2章 程式的版式

一 空行 1 每個類宣告和函式定義結束之後都要加空行 2 邏輯上密切相關的語句之間不加空行 二 行 1 一行 只做一件事 這在python中顯得尤為重要 2 if for while do等語句獨自佔一行,不論有多少執行語句都要加 3 盡可能在定義變數的同時初始化該變數 三 行內的空格 1 關鍵字之...

第4章 程式的控制結構

0401.輸入乙個年份,輸出是否為閏年。閏年條件 能被4整除但不能被100整除,或者能被400整除的年份都是閏年。0401 n eval input if n 4 0 and n 100 0 or n 400 0 print 年是閏年 format n else print 年不是閏年 format...

第2章 程式的靈魂 演算法

前面的話 這是給幾個高中的興趣班講解譚浩強的 c程式設計 第三版的講義之節選,實際講解時使用了10個道具盒子演示計算過程。另外,例子的解釋選取了2.1 2.3 2.4這3個比較典型的,最後用譚浩強先生書上的幾個簡單的例子給出了關於什麼是結構化的程式設計方法的解釋 去掉了s2後,演算法的功能保持不變哦...