自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Web 開發(fā)用哪個框架好?Flask vs.Django

開發(fā) 架構(gòu)
對于初學(xué)者來說,找到一個好的框架來學(xué)習(xí)或者項目開發(fā)都是非常有必要的,而當(dāng)你有一定開發(fā)經(jīng)驗(yàn)后,你應(yīng)該選擇適合當(dāng)前業(yè)務(wù)需要的框架。

[[264047]]

前言

對于初學(xué)者來說,找到一個好的框架來學(xué)習(xí)或者項目開發(fā)都是非常有必要的,而當(dāng)你有一定開發(fā)經(jīng)驗(yàn)后,你應(yīng)該選擇適合當(dāng)前業(yè)務(wù)需要的框架。

我這里并不想探討哪個框架好哪個不好,這個永恒的話題就跟探討"世界上哪種編程語言最屌"是一樣的。

分析

面對一個項目需求,不要著急去開發(fā),學(xué)會控制開發(fā)成本的前提是明白技術(shù)難點(diǎn)可能帶來的額外的時間消耗。

對于我這種中級Python開發(fā)人員來說,并沒有實(shí)質(zhì)上的項目經(jīng)驗(yàn),沒有開發(fā)過大型的線上項目,無非是爬蟲寫了一堆又一堆,本質(zhì)上跟初學(xué)者差別不大,充其量也就算一個編碼經(jīng)驗(yàn)豐富的碼農(nóng)而已。所以在遇到難度相對較大的項目需求時,往往會糾結(jié)該如何選擇框架上,這也會浪費(fèi)掉大量的時間。

選擇

所謂項目的難度大,要么是業(yè)務(wù)類型繁多,業(yè)務(wù)邏輯復(fù)雜。要么是涉及到一些擴(kuò)展功能,比如需要調(diào)用系統(tǒng)的shell命令、串口通信等等。前者沒有技術(shù)難點(diǎn),僅僅是業(yè)務(wù)復(fù)雜,考慮到后期項目擴(kuò)展,可能需要一個良好的系統(tǒng)架構(gòu)。對于后者來說,可能存在難以實(shí)現(xiàn)的技術(shù)難點(diǎn),要想搞定所有的技術(shù)難點(diǎn),需要重新學(xué)習(xí)對應(yīng)的知識,包括后面的代碼測試,環(huán)境模擬測試等等一系列操作,這個時間是很難估算的。

Python web框架里面比較出名的Django和Flask的選擇很是讓人頭疼。

在初學(xué)Python web的時候,很多老手都推薦學(xué)習(xí)Django,原因是因?yàn)镈jango相對比較完善,功能非常強(qiáng)大,有點(diǎn)像著名的ThinkPHP框架。老手們說的并沒有錯,但是這樣一開始就入手一款重量級框架可能不是一個好的開始。

Django框架的強(qiáng)大就肯定意味著它是一款重量級框架,而對于初學(xué)者來說,這可能是一種災(zāi)難。如果初學(xué)者沒有其他語言的基礎(chǔ),沒有后端開發(fā)的經(jīng)驗(yàn),那么這種方式可能直接就導(dǎo)致放棄。

Python web的入門,使用web.py是非常好的選擇。不管是Django還是Flask,他們設(shè)計的基礎(chǔ)都是web.py。不同的是Django設(shè)計的更復(fù)雜,更像是一間做好硬裝的房子,你只需要稍微做一下軟裝,布置一下家具就能把整個房間設(shè)計的很漂亮。

Flask就不太一樣了,它僅僅幫你做好了建房子所需要的材料,房子如何搭建,如何裝修全都得靠你自己動手,所以同一個項目,使用Flask來做,不同的人可能設(shè)計出來的架構(gòu)完全不同,而使用Django框架做出來的架構(gòu)可能都差不多了。

對于用過MVC框架的開發(fā)者來說,上手Django是很快的,因?yàn)镈jango也是MVC模式。Flask就沒有什么模式可言了,僅僅提供了一種服務(wù)而已,要搞成什么樣子全靠自己。所以如果你想自己去設(shè)計目錄結(jié)構(gòu),模塊的劃分等個性化設(shè)計時,推薦使用Flask。弊端也很明顯,如果你不是一個經(jīng)驗(yàn)豐富的開發(fā)者,你很可能會把整個項目架構(gòu)設(shè)計的亂七八糟。

對于我來說,很多時候一個項目剛開始并不覺得是個大項目,做到后面功能越來越多,擴(kuò)展越來越多,就變成了一個大項目,而使用Flask就很容易的完成這個任務(wù),小型項目快速開發(fā),大項目設(shè)計靈活。

責(zé)任編輯:武曉燕 來源: 企鵝號 - 編程派
相關(guān)推薦

2017-09-11 10:55:22

PythonWeb框架

2025-04-02 11:40:00

框架FlaskDjango

2022-06-27 17:46:53

PythonFlask

2023-04-28 08:28:14

FlaskDjangoPython

2023-10-09 18:17:52

Python語言Web

2023-08-27 15:10:29

Django和Flask框架

2019-05-15 13:48:17

PythonDjangoFlask

2021-12-06 09:00:00

開發(fā)WebDjango

2012-03-02 09:12:54

jQuery MobijQTouchSencha Touc

2021-07-28 06:51:08

FlaskPythonWeb

2017-11-29 14:48:01

Node.JSRails語言

2021-08-15 21:36:00

框架開發(fā)JavaScript

2012-03-15 15:35:51

iUI框架EclipseiOS Web

2018-12-03 08:25:24

2023-06-13 13:38:00

FlaskPython

2011-09-05 13:45:25

jQuery MobiSencha Touc移動Web UI框架

2012-03-07 14:32:41

Node.js

2021-04-28 07:03:28

DjangoFlaskFastAPI

2023-03-27 15:07:27

PythonWeb 開發(fā)編程語言

2010-02-01 11:03:51

Python Djan
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號