怎樣才能徹底掌握flask?怎麼個學習順序比較合理?

來源:互聯網
上載者:User
只瞭解基本的python文法。看了the foudation of python web programming的web部分,感覺沒啥收穫。wsgi在看,但看不懂。。有點不知道從何學起了。。。大蝦們指點一下吧。

回複內容:

推薦Flask Web Development這本書,循序漸進每一小節都有git tag,很方便看代碼。
不要太關注細節,如你提到的wsgi,先整體,後細節,而疑惑就需要自己進入源碼找答案了。
要深入學習還是需要看源碼,瞭解flask的原理。比如context,request, session的原理;如何增加模板filter,如何注入方法;flask_sqlalchemy的db session也是構建在context上,具體原理;flask_cache的細節,memoize如何通過類方法清空執行個體方法的cache;jinja2的filter.py中的filter是否熟悉,bccache是否對你有用,深入瞭解模板原理。
當遇到阻塞請求,如調用外部api時,如何提高系統輸送量;用flask如何?長串連(Comet)。。。(藉助gevent,想明白後你就會發現其實tornado最有優勢的優點其實不過如此)
其實單純的一個架構是有限的,痛點在於如何和其它組件更好更高效的工作。1. 最起碼理解網路,http這層肯定要理解
2. 熟悉python,這是個過程,學習加實踐
3. 學習官方文檔,官方文檔是最全的也是意圖最明確的。
4. 寫demo,不會寫多看看別人怎麼寫,自己就會了。
5. 研究某一點,深入到源碼,有時候源碼也看不懂可以請教一下其他人。

對於想深入flask內部我覺得由簡到難需要看的(自己感覺)。

1. config原理
2. 路由原理
3. Wsgi介面調用
4. 理解session
5. 理解threading.local
6. 理解flask自己封裝的thread local
7. 理解g和request
8. 理解app context和request context首先必須贊一下 pocoo,pocoo 的文檔很規範,解釋得很清晰。建議樓主直接看英文原文來學習 Flask。
接著回答問題。
我認為學習 Flask 痛點不在於如何使用 Flask,而是對 Python 的使用,以及對 Web 架構的理解。理解如何使用 Web 架構開發網站的話,Flask 學習起來應該是很順利的。
有一些概念是需要明白的,例如 MVC 開發模式、Route 定義、HTTP Method 之類。
當然 Flask 還有自己的特點,如 Blueprint 和 Testing 部分,建議樓主學一學。

對 Flask 架構基本瞭解之後,可以看看 Github 上一些基於 Flask 的網站源碼,例如 June (pythoncn/june 路 GitHub) 。
最後,聰明的開發人員是不會自己早輪子的。下面是 Python-China 一網友收集的 Flask 資源:
humiaozuzu/flask-dev-bookmarks 路 GitHub
https://github.com/humiaozuzu/flask-dev-bookmarks/blob/master/plugins.md同在學flask,本來看中文教程,現在準備放棄。。
在跟著教程做的時候,遇到幾個問題:
1.自己不理解Web開發的基本知識,不知道Web架構應該有哪些作用
2.中文文檔坑啊!步驟 2: 應用設定代碼這裡,步驟2後面的連結是步驟4(坑了之後才發現連結錯誤),跟做完後無法運行,對照英文文檔後發現還漏了一些代碼沒說到。。

打算按之前答案說的,先瞭解Web架構的基礎知識吧。
剛剛搜了一下,推薦這篇文章:【譯】什麼是 web 架構?學flask看這個教程 The Flask Mega-Tutorial, Part III: Web Forms 特別好flask?很難學嗎?

wsgi可以看很多的例子,比如這個http://archimedeanco.com/wsgi-tutorial/
flask本身簡單到不能再簡單,所以如果你覺得難,那麼顯然是沒學好基礎,建議你先從基礎學起,比如web開發基本知識:session管理啊,template啊神碼的,然後學flask一天就差不多了……以下內容節選自我的部落格《Flask入門指南》,不知道對你有沒有協助。
Flask 入門指南

--------

Flask入門

Flask上手非常容易,僅僅看完Flask官方文檔中的Quickstart部分,就可以實現簡單的網站了。當然,網站看起來好不好,與html, CSS和js水平有關,這不在Flask的使用範圍之內。


Flask精通

若要精通Flask,僅僅通過Quickstart快速入門完全不夠,那怎樣才能把Flask用好呢?用好Flask沒什麼特殊的捷徑,靠的依然是『多使用、多思考、多看他人優秀的代碼』,經驗可能是編程世界裡最恰當稱之為掌握新技術的捷徑的東西,而經驗的積累卻又是一個漫長的過程,靠的也是『多使用、多思考、多看他人優秀的代碼』。Flask的精通要靠自己努力,優秀的資料可以分享。我在這裡推薦幾個我覺得不錯的資料,歡迎大家補充。


(1) Flask官方文檔

Flask官方文檔寫的還是相當不錯的,作為學習Flask的第一手資料沒有問題,且Flask官方的Snippets,對開發很有協助,也能避免開發人員花太多時間考慮重複的輪子如何開發


(2) Flask Web開發

這本書相當不錯,通過這本書的學習,基本能做到Flask從入門到精通,也是我建議的第一手Flask學習資料。書中介紹的Flask構建大型項目的架構方式,很是受用,很有實際意義。


(3) miguelgrinberg.com

上面圖書作者的部落格,是積累Flask開發經驗的好資料


(4) Write a Tumblelog Application with Flask and MongoEngine

這是MongoDB官方文檔中的一個教程,也是學習Flask開發的一個很好案例,尤其適合Flask+MongoDB開發的應用情境


(5) Flask 源碼

Flask 本身是一個非常優秀的Python庫,閱讀其源碼對理解Flask及提高Python開發水平非常有協助。


(6) The Hitchhiker’s Guide to Python!

這個資料雖然不直接與Flask有關,但對初學者,絕對有學習的價值

我想跟著這個問題問問各位,根據以上的回答呢,我覺得要學flask,首先得學習一部分網頁開發的知識,然後是要能熟悉運用python進行編碼,最後再看flask文檔或項目源碼跟著學,我這樣理解對嗎?同時我也想問問如果學flask需要先學習一部分知識,就像前面有人說的“web開發基本知識:session管理啊,template啊神碼的”,能不能具體講講這部分“必要知識”是什嗎?(因為我是先學python編程的,現在想轉入用python做網頁開發,所以想問問有哪些“基本知識”要學,求幫忙!)我們都知道,想要精一行,必須通十行。

比如你想精通Flask,就不僅僅是要整天專研Flask,還需要你懂HTML、CSS、JavaScript、python、SQL,當你程式寫好了,要部署還需要懂Linux,懂營運。

所以在“徹底掌握flask”這條路上,建議除了學習flask之外,還要把精力放在Web前端後端的“本質”的學習,flask只是術,而後者是道。直接看官方文檔,寫的很清楚;
看The Flask Mega,很快就能入門。開源中國上有翻譯。
github上的flask相關項目拿下來看看
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.