Mixin 就是混入的意思。
和多重繼承類似(其實可以把 Mixin 看作多重繼承的一種在特定場景下的應用),但通常混入 Mixin 的類和 Mixin 類本身不是 is-a 的關系,混入 Mixin 類是為了添加某些(可選的)功能。自由地混入 Mixin 類就可以靈活地為被混入的類添加不同的功能。
傳統的「接口」概念中并不包含實現,而 Mixin 包含實現。實際上 Mixin 的作用和 Java 中的眾多以「able」結尾的接口很相似。不同的是 Mixin 提供了(默認)實現,而 Java 中實現了 -able 接口的類需要類自身來實現這些混入的功能(Serializable 接口是個例外)。
參考:
http://python.usyiyi.cn/documents/django_182/topics/class-based-views/mixins.html
如果你想編寫一個簡單的基于類的視圖,它只響應POST, 我們將子類化View并在子類中紅寫一個post()方法,但是,如果我們想處理一個由URL標識的特定對象,我們將需要SingleObjectMixin提供的功能。
圖片.png