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

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

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

[TOC]

Flask 简介

Flask 非常适合用来快速开发一些小型工具。它也是目前上手最快的 Python Web 开发框架。基于 Python 的著名 Web 开发框架还有 djangoFlask、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 ;

(未完待续)