开发一个 Flask 网站:基础知识

十一期间,我花了大概 5 天时间(每天3-4小时),用 Flask 开发了一个内部工具用来管理团队 KPI 。这个工具会交给其他同学继续开发,为了方便交流,我用几篇文章来描述一下如何从零开始快速上手 Flask 的开发流程。我会提供包括参考资料,书籍链接,学习顺序和方法,最佳实践等内容。

注意: 这里的“从零开始”并非毫无开发经验,这个零代表:有一定的IT技术基础,使用过脚本语言,但从未或很少接触 Web 开发。

[TOC]

Flask 简介

Flask 非常适合用来快速开发一些小型工具。它也是目前上手最快的 Python Web 开发框架。基于 Python 的著名 Web 开发框架还有 django 。Flask、Django、Pyramid三个框架的对比 介绍了几个主流 Python Web 开发框架的区别。

Flask 的技术栈

Flask 的依赖非常少,只依赖一套模版系统 Jinja2 和 WSGI 工具库 Werkzeug 。其它的内容就需要自己选择了。我的选择如下:

Python

Python3

具体的学习方法请看 Python 入门建议 。该文中提到了如何学习 Python,看什么书,学习顺序以及学习工具。

数据库

MySQL

推荐书籍:

这两本薄书的作者是同一个人,内容差别也不大,可以一起读。之所以读了 MySQL 还要读 SQL,是因为后者强调了各种不同数据库支持的 SQL 语言的异同,值得了解一下。

MySQL 的客户端库使用 PyMySQL 。PyMySQL 不需要学习,因为我选择使用 SQLAlchemy 。

我使用 SQLAlchemy 实际操作数据库。 SQLAlchemy 是一种 ORM ,可以理解成基于编程语言的虚拟数据库。使用 SQLAlchemy ,就不必编写实际的 SQL 语句,直接使用 Python 对象语法就能完成查询,能同时支持多种不同的数据库。

学习 SQLAlchemy 最好的办法就是阅读 官方文档(英文) ,我还没有发现很好的中文文档。

前端

Bootstrap

(待续)

jQuery

(待续)

学习顺序

  1. 学习 Python,见 Python入门建议 ;
  2. 学习 Flask,阅读 《Flask Web 开发》 ,该书中包含 Jinja2 和 SQLAlchemy 的入门教程;
  3. 在开发过程中持续学习 SQLAlchemy 和 Jinja2/Werkzeug ;

(未完待续)