可以使用如下代碼創(chuàng)建一個Python模板,包含兩個函數(shù):一個計算長方形面積的函數(shù),一個計算長方形周長的函數(shù)。

創(chuàng)新互聯(lián)是一家專業(yè)提供沂水企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為沂水眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
# 定義一個函數(shù),用于計算長方形的面積
def rectangle_area(length, width):
return length * width
# 定義一個函數(shù),用于計算長方形的周長
def rectangle_perimeter(length, width):
return 2 * (length + width)
在這段代碼中,“rectangle_area”函數(shù)用于計算長方形的面積,“rectangle_perimeter”函數(shù)用于計算長方形的周長。兩個函數(shù)都接收兩個參數(shù):長方形的長和寬。
要使用這兩個函數(shù),可以使用如下代碼:
# 輸入長方形的長和寬
length = float(input('請輸入長方形的長:'))
width = float(
摘要: Flask , 視圖 , 視圖函數(shù) , 類視圖 , 方法視圖 , 裝飾器 , 藍圖
在Flask中 路由 是指用戶請求的 URL 與 視圖函數(shù) 之間的 映射 ,處理URL和函數(shù)之間關(guān)系的程序稱為路由。Flask根據(jù)HTTP請求的URL在路由表中匹配預(yù)定義的URL找到對應(yīng)的視圖函數(shù)。將視圖函數(shù)的執(zhí)行結(jié)果返回給服務(wù)器。
Flask中默認使用 @app.route 裝飾器將視圖函數(shù)和URL綁定,裝飾器是一種接受函數(shù)的函數(shù),返回新的函數(shù)。
使用裝飾器將視圖函數(shù)page和url '/'關(guān)系綁定帶 app.url_map 屬性上,打印app.url_map的結(jié)果如下,有兩條url規(guī)則,分別是根目錄下的URL規(guī)則和static目錄下的URL規(guī)則
可以給裝飾器增加 endpoint 參數(shù)給 url命名 ,一旦使用了endpoint參數(shù) url_for 反轉(zhuǎn)就不能使用視圖函數(shù)名了而要使用定義的url名。
url_for('index')的輸出是字符串格式url的內(nèi)容"/"
也可以不使用裝飾器,使用 add_url_rule 將視圖函數(shù)和url綁定,裝飾器 @app.route 實際是調(diào)用的 add_url_rule 方法
視圖函數(shù)也可以結(jié)合類來實現(xiàn),類視圖的好處是支持 繼承 ,可以將共性的東西放到父類中,類視圖需要使用 app.add_url_rule() 來進行注冊,類視圖分為 標準類視圖 和 基于調(diào)度方法的類視圖
標準類視圖有標準的寫法
使用類視圖,在父類中定義一個屬性,在子類中完成各自的業(yè)務(wù)邏輯,同時都繼承父類中的這一個屬性
分別定義三個子類的模板
查看結(jié)果,三個url的返回除了三個模板各自的內(nèi)容外都需要輸出父類的ads屬性
如果同一個視圖函數(shù)需要根據(jù) 不同的請求方式 進行不一樣的邏輯處理,需要在視圖函數(shù)內(nèi)部進行判斷,可以使用 方法類視圖 實現(xiàn),使用類繼承 flask.views.MethodView ,定義和請求方式 同名的小寫方法 來完成了邏輯處理。
編輯一個頁面直接訪問是輸出用戶名密碼頁面,提交表單后是密碼正確與否的提示。
在html中定義 form 標簽action屬性關(guān)聯(lián)url名
如果不用方法視圖實現(xiàn)需要在普通視圖內(nèi)部調(diào)用 request.method 判斷是否為 GET , POST 進行判斷
裝飾器的本質(zhì)是一個Python函數(shù), 接受一個函數(shù) , 返回一個函數(shù) ,目的是讓一個函數(shù)獲得 其他額外的功能 。
假設(shè)一個場景訪問新聞詳情頁又一個函數(shù)實現(xiàn),但是之前必須先登錄,登錄由另一個函數(shù)實現(xiàn),此時需要將訪問新聞函數(shù)傳遞給登錄函數(shù)返回一個新的函數(shù)作為整體的邏輯實現(xiàn),這個給登錄函數(shù)增加新功能瀏覽網(wǎng)頁的過程就是裝飾器。
控制臺輸出,new_func()執(zhí)行了新函數(shù),基礎(chǔ)函數(shù)user_login執(zhí)行了新加入的功能,新函數(shù)真實的函數(shù)名還是inner
如果使用裝飾器魔法符號實現(xiàn),此時直接調(diào)用被裝飾的函數(shù)即可實現(xiàn)帶有新功能的基礎(chǔ)函數(shù),函數(shù)作為參數(shù)傳入的過程已經(jīng)自動實現(xiàn)
在基礎(chǔ)函數(shù)和要包裝的函數(shù)上都支持傳遞參數(shù)
查看 app.route() 的源碼內(nèi)部也是將視圖函數(shù)包裝,在原函數(shù)執(zhí)行之前調(diào)用 add_url_rule 綁定url,endpoint和視圖函數(shù)的關(guān)系,再返回原函數(shù)實現(xiàn)業(yè)務(wù)邏輯
藍圖的目的是實現(xiàn) 各個模塊的視圖函數(shù)寫在不同的py文件中 ,在主視圖中導(dǎo)入分路由視圖的模塊,并注冊藍圖對象, 降低各個功能模塊的耦合度 ,使用 flask.Blueprint 定義藍圖, app.register_blueprint 注冊藍圖。
實現(xiàn)主頁,詳情頁,對比頁三個頁面,在主頁中導(dǎo)入兩個其他功能頁,先編寫兩個功能頁的藍圖detail.py和compare.py
使用 app = Blueprint('detail', __name__) 定義藍圖對象, detail 是藍圖名,藍圖名不能重復(fù)。再編寫主視圖main.py,在主視圖中注冊之前的藍圖,其他視圖函數(shù)的名字不能和藍圖名一致
查看效果
如果在藍圖的py腳本中調(diào)用了 url_for ,需要把藍圖的name(就是 name 之前的)也加入作為前綴,如下
1、打開sublime text 3,新建一個PY文件。
2、import os,因為涉及到系統(tǒng)文件路徑的原因,我們這里先導(dǎo)入系統(tǒng)模塊。
3、html = open("E:\\Download\\new\\new.html", "w"),創(chuàng)建變量,然后設(shè)置文件名字,注意用w寫方式來進行,這樣就會創(chuàng)建一個新的HTML文件。
4、html.write("!DOCtype HTML\
\nheadtitle新的網(wǎng)頁/title/head\
\nbodyh1大家好啊/h1/body")
這個時候就可以寫入相關(guān)的HTML代碼了。
5、這個時候可以雙擊打開HTML文件,那么就可以看到書寫的網(wǎng)頁了。
6、然后加上html.close(),記得加上這行代碼來關(guān)閉,不然會占用很多內(nèi)存,這樣就完成了。
文章題目:Python視圖函數(shù)模板的簡單介紹
網(wǎng)頁路徑:http://chinadenli.net/article20/doghjco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、動態(tài)網(wǎng)站、標簽優(yōu)化、面包屑導(dǎo)航、微信小程序、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)