取自实验楼实验Flask开发轻博客
作为Flask入门系列感觉不错,最近在学习《 Flask Web 开发 》,与这个实验配合能巩固所学。
并不是会员课程,建议在自己电脑上使用virtulenv进行实验。
实验源码在此。
我的代码在此。
在官方的代码上稍作修改,还在更新中...
--- 4月4日更新 ---
实验完毕,可查看提交历史,对比各个版本的区别。
实验完毕,总结一下我的收获。
1
Flask作为一个优秀的Python Web框架,有良好的扩展性和易用性,使用很方便,需要实现的功能可以使用相应的扩展,解耦做得非常好,以前没怎么接触Web开发,对于Flask的这种处理方式还是非常有好感的,配合Jinja2模板引擎能实现很强大的功能,虽然现在还不是很适应Jinja2的写法。
2
项目的组织结构。本项目使用了一般较为推荐的结构。关于这个话题可以参考知乎专栏的一篇文章,讲的很详细,如需了解更多信息可以看《FLask Web 开发》。
3
本次实验未涉及蓝本(Blueprint),对于这个概念还不是很理解,需要多啃书。
4
本实验基于Python2.7,感觉Python的版本割裂实际上远比看起来要大,而且并没有一个版本完全优于另一个版本。比较头疼的是2.x的编码问题和3.x的绝对导入问题,仍待加深理解。
5
使用 virtualenv 和 requirements 可以把环境问题降到最小,谁用谁知道。
- virtulenv支持2.x和3.x,使用
virtualenv ./venv
创建虚拟环境,而3.x自带了一个模块,可以使用python3 -m venv ./venv
创建虚拟环境 - 使用
pip freeze > requirements.txt
导出依赖,使用pip install -r requirements.txt
导入依赖。
6
Python的导入问题需要进一步思考。
7
flask项目配置可以参考这篇。
8
业务逻辑和表现逻辑的分离非常赞。Jinja2模板还需要多写一些代码来熟悉,同时 flask-bootstrap 所引入的各种特性也需要慢慢了解。
9
关于面向对象的思想,一直以来使用较少,因此了解也不多,但在大型项目中是非常必要的。在这个实验当中较多的体现在表单和数据库模型对象上。以模型为例,既有各列的定义,也有继承的查询方法,同时自己也可以自行添加一些需要的方法。
10
flask的全局变量是一个很好的设计,很多特性还需要多读文档来了解。
0.1版本的源码稍微看了一下,非常简洁高效。
想到再更。