--- Title: \[Django] - 壹、Django 或 Flask Tag: webdevelopment --- 這是我第一次想製作有自己想要功能的網站。為什麼標題是Django或Flask這兩種python常用的框架呢?當然是因為我是個python語言使用者! 這篇除了整理兩種框架的特色與差異,也會說明我選擇了哪種框架以及原因。 一、[Django](https://www.djangoproject.com)  首先看到Django的首頁,Django是一種高階的python框架,由一群有豐富經驗的開發者共同開發。django幫忙處理一些繁複且瑣碎的開發流程,讓使用者可以專注在開發自己的網頁應用。 聽起來很不錯,那有什麼網站或app是使用django框架做成的呢? A: Instagram, Pinterest, National Geographic等幾個網站都是使用django完成的。 進到這個網頁([Django at first glance](https://docs.djangoproject.com/en/5.2/intro/overview/))可以簡單的一瞥Django大概的架構。 在Django的架構中,我們可以在models.py自訂自己的資料庫排版、使用python API存取資料、使用可自訂的內建管理介面、自定義網址、自訂網頁的功能和http回應、設計網頁模板。 雖然上述的幾個功能看起來已經很充足了,但在網頁最後的一句話「This is just the surface」又告訴我們這些只是Django的皮毛,真正的Django不只如此。聽起來真是相當恐怖。 看到這裡不曉得讀者們對Django有什麼想法呢?是覺得「Wow!Django真是一個好用的框架」,還是「Oh!不,Django要學的東西好多,好痛苦啊。不論你是哪個都可以再看看接下來的Flask的部分,再決定你想選擇的框架喔~ 二、[Flask](https://flask.palletsprojects.com/en/stable/) Flaks是一個輕量級的WSGI[^WSGI](Web Server Gateway Interface)網頁應用框架。輕量級顧名思義是要讓開發者可以用最快的速度開始並且完成一個可以擴充的應用程式。 我們一樣從文件中的Quickstart快速的看一下Flask有什麼樣的功能。Flask只需要五行程式碼就可以完成一個Hello World!的靜態網頁,並且可以使用指令直接將網頁公開,讓其他人連上使用(使用時要小心,網路上很多攻擊者會嘗試入侵主機)。除此之外,Flask會自動處理使用者提供的數值,避免伺服器遭到攻擊。另外,Flask也可以自訂網址、使用json API等等。 感覺滿簡單的,有哪些網站是使用Flask的架構呢? A: Netflix, Uber等等都是使用Flask加上其他擴充元件而做成的 [^WSGI]: Web Server Gateway Interface: 溝通伺服器與應用程式之間的介面,也是一種協議。讓開發者的程式可以與伺服器搭配,減少開發的複雜性。 看完這兩種框架後,大家有什麼想法呢? **簡單的總結** Django: 較完整的框架,讓開發者可以專注在開發網頁應用程式,並且把各個功能分成不同檔案,增加易讀性。 Flask: 較簡單的框架,開發者可以用最短的時間開發功能並實際測試,搭配一些擴充元件或API也可以開發出大型網站。 根據總結大家可以選擇自己需要的框架以及開發模式。 最後,在未來的自製網站,我選擇的是Django。 原因如下: 1. 參加的讀書會中,有經驗的前輩建議Django的架構比較完整,雖然學習曲線較陡峭,但早學晚學遲早都要學。 2. 看完兩者網站的介紹後,我覺得Django比較漂亮,而且各個功能分成不同檔案處理讓我比較容易學習和記憶。 3. Django有自己的討論區,若遇到問題可以去討論區發問。 這三個原因就是我主要的考量,也是我比較在意的地方。 若讀者想要的是快速簡單的開發,那還是會比較推薦Flask喔! 謝謝大家的收看! 如果有任何想法或是問題歡迎寄信到 chantinghsien@gmail.com 可以一起討論和分享新知
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up