上下文協議:在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 ...