初步阅读Flask源码

今天终于把Flask的源代码初步阅读了一遍,梳理下自己的收获。

  • 一开始我使用chrome+octotree,但是体验不是很好。后来换成了atom和vs code,依然不是很满意,因为想看函数或者某个对象的定义时,不能很快定位过去。最后换成了PyCharm,集成开发环境(IDE)内嵌了非常多的功能,非常适合与读源代码
  • pythonic,大神代码看多了就会学习对方的风格,代码也更加pythonic,比如:
test = [k for k in list if k > 0]  
test = getattr(a,'__name__',None)  
...
  • Flask确实是一个微型框架,提供核心功能,其它需求以插件的方式提供。代码加起来可能都不到1万行。
  • 许多框架都有register(注册)的概念,阅读完代码发现Flask里的注册是维护一个dict(Python里是dict),通过key/value的方式把要注册的内容添加到dict中。
  • python中的包管理,可以把每一个文件看作一个包使用import导入,一般从文件名就可以看出包的作用。和Golang这门语言对比就会发现Golang是共过Package的方式指定包。
  • 对装饰器的理解加深,还是需要继续学习。
  • 下面回去看下PEP8
  • 下一步可能看下这个udacity视频
  • Flask来此Pocoo开源团队,成员Armin Ronacher是核心开发者。Armin Ronacher's Thoughts and Writings记录了很多他的talks。