Django DRF有什麼不同

2022-08-10 05:12:12 字數 593 閱讀 8860

描述django

將資料庫的東西通過orm的對映取出來,通過view檔案,按照template檔案排出的模板渲染成html。當使用者請求相應的url時,返回相應的結果。

描述drf

將資料庫的東西通過orm的對映取出來,通過view和serializers檔案繫結rest介面,當前端請求時,返回序列化好的json。

drf在django基礎上做的操作

drf是django的超集,去掉了模板的部分,提供了乙個rest的介面,同時也提供了滿足該介面的**工作流。同時,在rest的規範下,公升級了許可權和分頁等功能,增加了限流和過濾搜尋等功能。

總結django+drf將後端變成一種宣告式的工作流,只要按照models->serializers->views->urls的模式去乙個個py檔案去配置,即可生成乙個很全面的通用的後端。當然,如果需求不那麼通用,這種設計就變成了乙個累贅。

事實上,過重的設計降低了靈活性,報錯基本得去翻原始碼實現,然後再吐槽一遍原始碼實現,這也是有得必有失。當然,現在django和drf一直在優化middeware的設計,也有api_view這種類似flask的裝飾器的實現方式,也是在靈活性方面的一種權衡,不過對於初學者來說,仍然是個不大不小的坎。

DELETE 與 TRUNCATE 有什麼不同

truncate和delete有以下幾點區別 1 truncate在各種表上無論是大的還是小的都非常快。如果有rollback命令delete將被撤銷,而truncate則不會被撤銷。2 truncate是乙個ddl語言,向其他所有的ddl語言一樣,他將被隱式提交,不能對truncate使用roll...

UDX與TCP BBR有什麼不同

udx協議,我寫了很多年,一直在摸索,嘗試各種演算法,停留在一些演算法上很多年。我也堅信過,這是乙個很多人涉足但是沒有人長期在這一塊工作的領域。他入門比較簡單,但是做好,經力了太多,真的好難,因為有很多地方,真的不好定義。tcp bb最大的改進與傳統的tcp比較來說,確實就是他不再以丟包為減速條件,...

get和post有什麼不同?

get和post是http請求的兩種基本方法,要說它們的區別,接觸過web開發的人都能說出一二。最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。你可能自己寫過無數個get和post請求,或者已經看過很多權威 總結出的他們的區別,你非常清楚知道什麼時候該用什麼...