flask中的with語句

2021-10-03 14:59:07 字數 1185 閱讀 3057

上下文協議:在python中,實現了__enter__和__exit__這兩個方法的物件也就是實現了上下文協議(只有實現了上下文協議的物件才可以使用with語句)。

上下文管理器:實現了上下文協議的物件又稱作上下文管理器。

用法:(1)舉例:在運算元據庫時,首先連線資料庫,其次處理sql語句,最後釋放資源。那麼利用with語句可以將連線資料庫放在__enter__方法中,操作sql放在with語句**塊中,釋放資源放在__exit__方法中。

(2)**示例

class

test()

:def

__enter__

(self)

:print

('進入enter方法'

)def

__exit__

(self, exc_type, exc_val, exc_tb)

:print

('進入exit方法'

)with test(

)as obj:

print

('進入業務方法'

)

進入enter方法

進入業務方法

進入exit方法

在這裡,可以簡單理解with語句的基本用法;但是with語句中as後面的obj並不是上下文管理器,而是__enter__方法中所返回的物件,如下:

class

test()

:def

__enter__

(self)

: a =

1print

('進入enter方法'

)return a

def__exit__

(self, exc_type, exc_val, exc_tb)

:print

('進入exit方法'

)with test(

)as obj:

print

('進入業務方法'

)print

(obj)

進入enter方法

進入業務方法

1進入exit方法

由此可見 as後面的obj物件其實就是__enter__方法中所返回的物件。

flask之控制語句 if 語句與for語句

簡介 控制語句這些內容是寫在html檔案中的,所有的控制語句都是放在中,並且有乙個語句來進行結束,因為格式比較統一而且字元多,建議將這些加入到自動補全中,參考 jinja中常用的控制語句有if for in for語句語法 python from flask import flask,render ...

flask學習之set語句

應用場景 那麼以後就可以使用name來代替lcy這個值了 賦值語句建立的變數在其之後都是有效的,如果不想讓乙個變數汙染全域性環境,可以使用with語句來建立乙個內部的作用域,將set語句放在其中,這樣建立的變數只在with 塊中才有效 語法 foo is 42 here 或者 比較外部傳參與內部賦值...

Flask中的繼承

首先在被繼承的網頁index.html中使用 可以在繼承網頁被改被覆蓋的內容 其次在繼承網頁上使用 繼承index.html的所有內容 使用 可以覆蓋被繼承頁被圈的內容 注意 blockname必須是你想要改的保持一致 使用 可以被繼承頁面被圈的內容且新增內容 例如被繼承的網頁內容為 en utf ...