如何快速學會一個web框架?

最近換了工作,要使用Python的tornado框架。


Web框架的使用沒什麼難度,看官方網站文檔照著打出來罷了, 難的是使用它需要具備的知識和經驗,如熟悉Python語法、HTTP協議、一定的HTML/CSS/JS知識,並且知道前後端如何進行交互、資料庫和ORM的使用、MVC、Request/Response/Middleware等等。當然我不否認不同框架有獨有的設計哲學和殺手鐧,比如Flask的Context和Django的Admin。

無論是不是快速,只是學會框架的使用沒什麼用;

單個框架不深入,多學另外幾個也沒有用;


其實各個框架主體上都是那幾部分,資料庫和ORM,請求的處理流程,靜態文件,模板渲染,先搞清楚這些主幹的東西,整個網站就能跑了,然後再關注其它的功能。不過tornado的非同步機制如果想理解還是要花些時間,當然如果不想花時間,直接就按照例子來用也不是不行。


所有的web框架都需要http知識,所以如果你理解 http headers, GET POST, ..., HEAD, 200, ... 404, ... 500, Cookie, body, request, response 等知識的具體涵義以後, 你就能快速上手很多框架

其次,每個框架有每個框架的哲學,現在大家接觸的python,ruby,php框架都基於MVC,但不是所有的框架都是這樣的,比如ZOPE,大家理解z-object嗎?

之所以有框架的哲學,就是希望用一種模型將要做的工作具體起來。

就像買東西這件事,事實上是價值的交換,但是人們確造出來了貨幣。

最後,嘗試在最快的時間內掌握一門框架,並且理解它的本質吧,這樣你才會覺得其他框架其實也沒什麼神奇的,這有助於我們設計出優秀的產品,省掉不必要的工作。

最後,在玩遍了各類框架以後,我現在成了一個python tornado用戶。


如果你熟悉 HTTP 協議,那麼任何 Web 框架上手應該很容易

Web 框架的原理無外乎就是解析 HTTP 協議,然後給你 Request,最後你按照 Web 框架規定的 Response 格式給出響應,至於中間,就是你的業務邏輯了,查詢資料庫,調用第三方 API 之類的了,一般情況下,也就是你要寫的代碼了。

所以只要是 Web 框架,都離不開 HTTP 協議

然後就是語言層面了,就像你說的 Python 的 Tornado,這個框架是 Python 寫的,如果你有 Python 基礎,那麼結合上面的 HTTP 協議就可以很快上手了。

但是深入就不是那麼簡單了,比如 Tornado 裡面是自帶 Web Server 的,而有的其他框架僅僅是個 Web 框架而已。


最近我也在學Django。

python基礎語法要紮實,不過不會回去翻翻手冊也可以了。不會太難。

正則表達式,需要有點基礎,基本的常用會就可以了。太偏門的沒必要會。

web的一些基本知識,網頁請求,header,httprespone,不會也沒關係,可以去速查。

最重要的是最後自己要做點成品出來,不然你不知道自己在什麼地方還很薄弱。看教程的時候覺得很懂了,一旦寫代碼的時候就卡主了,這個時候就是薄弱或者沒記住。只有當自己用過了的東西,才是你自己的。


最近同在學django,學了快半年了,一直沒什麼突破。各種慢。

我之前懂點C++/VC++。網路什麼的學過皮毛,知道名詞。

學習的過程大概是按照 learning book的翻譯一步步做下來。

後來學了一段時間的JS和css,應該說只是了解,不算學吧。

學來學去一直沒有什麼大的進展,基本上沒有做出來一個成型的工程。

後來想用bootstrap 和 jquery。倒騰了一次一直沒怎麼弄好。

上個月,痛定思痛,仔細反省。覺得一定要做一個工程出來。完整的,可看的出來,才能有所進步。

於是決定為朋友做一個簡單的酒店查詢和預定小工程吧。自己做的時候,靜態文件的管理和設置一直有問題。

在後來,從網上找到一個做好的工程,manage 可以run起來的工程。

然後仿照這個做,最近一段時間收穫很大,解決了很多問題。並且修改了參照的這個工程的很多問題。

所以

以我個人的經驗來說,建議找一個自己想做的項目,個人博客也好,其他展示性的網站也好,做一個出來。做不出來,可以找一個現有的,看看別人怎麼解決自己遇到的問題,很有收穫的。

要做筆記。

------------

最新推薦Lynda: Online Courses, Classes, Training, Tutorials; 這個上面的視頻教程做的很好,都是相關技術的大牛將的,自然會切中要點,學習效率會高很多。

淘寶上可以買賬號,相對於知識的價值而言,非常便宜。


直接看官方文檔,跟著教程把示例代碼打一遍就差不多了


施主,框架神馬的,都是套路,用心去感受他就好


打好基礎,什麼框架都一樣。

舉個栗子,學好Java EE基礎和MVC原理,Struts2框架就會非常容易。

比如看到Struts2就想到這個Struts2無非就是個攔截器,web.xml也不用忘了配置那個攔截器。

struts.xml中的配置也是按照MVC來寫的,result映射視圖,Action為業務邏輯處理,JavaBean自然就是Model等等。


推薦閱讀:

如何開發一個Python web框架?
什麼時候應該從python2轉向python3?
Python系統實現可插拔python插件?
Django 的最佳開發實踐有哪些?
python庫Django,Flask各有什麼用途?

TAG:Web開發 | Python | Python框架 |