Flask基本概念

2021-08-27 14:00:26 字數 2825 閱讀 4440

mtv框架

總結:使用mvc或mtv就是為了解耦,可以提高開發維護的效率。

安裝:pip install flask

# 無參路由

def index():

return ''

​# 帶參路由,可以傳遞多個引數

def welcome(name, uid):

return 'hello {} {}'.format(name, uid)

​# 指定引數型別,如:str(預設)、int、float、path

def user(uid):

return 'hello {}號'.format(uid)

​# path型別:型別仍然是str,只是將'/'當做普通字元處理而已

def path(p):

return p

1.路由末尾的'/'建議都加上,防止出現路由多敲'/'出現的問題

2.若需要路由引數,引數需要放在<>中,對應的檢視函式需要同名的引數

3.路由引數可以指定多個,也可以指定型別

4.常用引數型別:str(預設)、int、float、path,使用時放在引數前面,使用':'與引數連線

5.path型別其實是str型別,只是將'/'作為普通字元處理罷了。

請求(request)

from flask import request

​# 請求,request中存放了所有的http請求資訊

def req():

# 完整的路由位址

# return request.url

# 不包含get引數的路由位址

# return request.base_url

# 只有協議主機和埠

# return request.host_url

# 只包含裝飾器中的路由位址

# return request.path

# 請求方法的型別:get、post

# return request.method

# 客戶端的ip

# return request.remote_addr

# args:get引數;form:post引數;values:get和post

# return request.args.get('uid', '預設值')

# headers:所有的請求頭資訊

return request.headers.get('user-agent')

響應(response)

from flask import make_response

​# 響應response

def response():

# 直接返回字串

# return 'ok'

# 可以在返回時指定狀態碼,預設都是200

# return 'page not found', 404

# 先用專門的函式構造乙個響應物件,可以指定內容及狀態碼等

resp = make_response('我是通過函式構造的響應', 404)

# 設定響應頭資訊

resp.headers['uid'] = 250

return resp

重定向(redirect)

from flask import redirect, url_for

​# 重定向

def old():

# return '原來的資料'

# return redirect('/new/')

# 根據檢視函式名反向構造路由位址,引數是檢視函式名

# return url_for('new')

return redirect(url_for('new'))

​def new():

return '新的資料'

反向構造路由(url_for)

# 反向構造路由

def urlfor():

# 不帶引數的路由

# return url_for('new')

# 可以構造帶參的路由,多出來的引數以get形式傳遞

# return url_for('user', uid=250, name='cuihua')

# 構造完整(帶協議主機和埠)路由,可以進行外部跳轉

return url_for('user', uid=250, name='cuihua', _external=true)

終止及錯誤定製

# 終止abort

def err():

# 終止**執行,其實是向系統丟擲指定異常

# 系統捕獲異常,按照統一的方案進行處理

abort(404)

return '正常'

​# 定製錯誤顯示

def page_not_found(e):

return '是不是搞錯了大哥?'

# 匯入類庫

from flask import blueprint, url_for

​# 建立物件,可以指定統一的字首

user = blueprint('user', __name__, url_prefix='/user')

​# 新增檢視函式

@user.route('/login/')

def login():

# 當反向構造同一藍本中的路由時,藍本名可以省略,但是不能省略'.'

return url_for('.register')

return '歡迎登入'

​@user.route('/register/')

def register():

return '歡迎註冊'

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...

XSLT基本概念

我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet language xsl和我們這裡說的xslt從狹義上理解是一樣的,而按照w3c的標準,xslt的說法更嚴格些,因此我們在文章中統一使用xslt的稱法。它們之間具體的關係我們會在下面講述。1.1 什麼是xslt...