flask框架視圖函數(shù)用法示例
本文實(shí)例講述了flask框架視圖函數(shù)用法。分享給大家供大家參考,具體如下:
flask框架 視圖函數(shù)當(dāng)中 各種實(shí)用情況簡單配置
1 建立連接
2 路由參數(shù)
3 返回網(wǎng)絡(luò)狀態(tài)碼
4 自定義錯(cuò)誤頁面
5 重定向
6 正則url限制 和 url 優(yōu)化
7 設(shè)置和獲取cookie
#coding:utf8 # 導(dǎo)入flask from flask import Flask,abort,redirect,make_response,request from werkzeug.routing import BaseConverter # Flask 接受一個(gè)參數(shù)__name__ 作用是指明應(yīng)用的位置 app = Flask(__name__) ''' 1 建立一個(gè)前后臺(tái)鏈接 裝飾器的作用是陸游映射到視圖函數(shù)index 訪問根目錄就會(huì)進(jìn)入index視圖函數(shù) ''' @app.route('/') def index(): # 返回后會(huì)調(diào)用make_response return "你好 世界!" ''' 2 給路由傳參數(shù) 傳遞的參數(shù)在<name>當(dāng)中 這個(gè)變量名稱也要傳遞給視圖函數(shù) 可以在<int:name> 或者<string:name> 指定傳遞參數(shù)的類型 不指定類型默認(rèn)使用string類型 ''' @app.route('/attr/<string:attr>') def attr(attr): return "hello,%s"%attr ''' 3 返回網(wǎng)絡(luò)狀態(tài)碼的兩種方式 01 return 字符串,狀態(tài)碼 02 abort(狀態(tài)碼) 200 成功 300 重定向 404 未找到 500 服務(wù)器內(nèi)部錯(cuò)誤 ''' #01 return 字符串,狀態(tài)碼 這種方式 可以返回不存在的狀態(tài)碼 前端依然能得到頁面 @app.route('/status') def status(): # 用這種方式可以返回假的狀態(tài)碼 前端依然能夠渲染 return 'hello status',999 #02 利用abort(狀態(tài)碼) 進(jìn)行返回狀態(tài)碼,只能寫入真的狀態(tài)碼 # 這個(gè)函數(shù)的作用是 自定義我們項(xiàng)目的 出錯(cuò)頁面 @app.route('/abort') def geive500(): abort(500) ''' 4 捕獲訪問我們flask后臺(tái)發(fā)生各種錯(cuò)誤的情況 利用@app.errorhandler(500) 進(jìn)行裝飾 能截獲500的response ''' # 捕獲500異常 函數(shù)當(dāng)中接受到錯(cuò)誤信息 @app.errorhandler(500) def error500(e): return "您請(qǐng)求的頁面后臺(tái)發(fā)生錯(cuò)誤!錯(cuò)誤信息:%s"%e @app.errorhandler(404) def error404(e): return "您訪問的頁面飛去了火星!信息:%s"%e ''' 5 重定向 有兩種方式: 01 redirect(url) 02 url_for(視圖函數(shù)) ''' @app.route('/redirect') def redir(): return redirect('http://www.baidu.com') ''' 6 url正則 兩個(gè)用途: 限制訪問 和 優(yōu)化訪問路徑 使用: 01首先要 定義一個(gè)繼承自BaseConverter的子類 在子類里面調(diào)用父類的初始化方法 重寫父類的變量 02然后 給applurl_map.converters 字典添加re健 和 我們自己寫的類做val 03最后 視圖函數(shù)的app.route('路徑<re(正則),變量名>') 變量名要傳給視圖函數(shù)做參數(shù) ''' # 01 寫一個(gè)繼承自 BaseConverter的子類 相應(yīng)的方法和屬性要重寫 class Regex_url(BaseConverter): def __init__(self,url_map,*args): super(Regex_url,self).__init__(url_map) self.regex = args[0] # 02 添加re映射 app.url_map.converters['re'] = Regex_url # 03 正則匹配參數(shù) # 利用正則對(duì)傳入?yún)?shù)進(jìn)行限制 # 只有1到3位小寫英文才能成功 否則都是404 @app.route('/attr2/<re("[a-z]{1,3}"):attr>') def attr2(attr): return "hello %s"%attr ''' 7 設(shè)置cookie 和 獲取 cookie 設(shè)置cookie: 利用 make_response() 拿到response對(duì)象 response.set_cookie(key,val) 獲取cookie: 利用request.cookies.get(key) 獲取cookie ''' # 設(shè)置cookie @app.route('/set_cookie') def setCookie(): response = make_response('設(shè)置cookie') response.set_cookie('log','設(shè)置的cookie') return response # 獲取cookie @app.route('/get_cookie') def getCookie(): log = request.cookies.get('log') return log if __name__ == '__main__': # 執(zhí)行后臺(tái)服務(wù)器 app.run(debug=True)
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python入門與進(jìn)階經(jīng)典教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python標(biāo)準(zhǔn)庫 datetime的astimezone設(shè)置時(shí)區(qū)遇到的坑及解決
這篇文章主要介紹了python標(biāo)準(zhǔn)庫 datetime的astimezone設(shè)置時(shí)區(qū)遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Python實(shí)現(xiàn)重建二叉樹的三種方法詳解
這篇文章主要介紹了Python實(shí)現(xiàn)重建二叉樹的三種方法,結(jié)合實(shí)例形式分析了Python重建二叉樹的實(shí)現(xiàn)方法、操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06python實(shí)現(xiàn)單張圖像拼接與批量圖片拼接
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)單張圖像拼接與批量圖片拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03Django模板中變量的運(yùn)算實(shí)現(xiàn)
這篇文章主要介紹了Django模板中變量的運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04