欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

怎样才能彻底掌握flask?怎么个学习顺序比较合理?

程序员文章站 2022-04-25 08:37:33
...
只了解基本的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
github.com/humiaozuzu/f 同在学flask,本来看中文教程,现在准备放弃。。
在跟着教程做的时候,遇到几个问题:
1.自己不理解Web开发的基本知识,不知道Web框架应该有哪些作用
2.中文文档坑啊!步骤 2: 应用设置代码这里,步骤2后面的链接是步骤4(坑了之后才发现链接错误),跟做完后无法运行,对照英文文档后发现还漏了一些代码没说到。。

打算按之前答案说的,先了解Web框架的基础知识吧。
刚刚搜了一下,推荐这篇文章:【译】什么是 web 框架? 学flask看这个教程 The Flask Mega-Tutorial, Part III: Web Forms 特别好 flask?很难学吗?

wsgi可以看很多的例子,比如这个archimedeanco.com/wsgi-
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相关项目拿下来看看