准备工作
MySQL软件
本书使用的数据库是目前最新的 MySQL 8.0 版本,读者在学习后续内容之前,要先下载和安装好该软件。关于 MySQL 软件的使用方法不在本书的讲解范围内,如果读者对 MySQL 的下载和安装有疑问,可以参考以下两个链接。
-
官方下载链接为 https://dev.mysql.com/downloads/mysql/ 。读者可以根据自己的操作系统,下载不同的 MySQL 安装包。
-
MySQL 安装图文教程链接为 https://zlkt.net/book/detail/10/306 。
Python操作MySQL驱动
Flask 要操作数据库,必须要先安装 Python 操作 MySQL 的驱动。在 Python 中,目前有以下 MySQL 驱动包。
-
MySQL-python:也就是 MySQLdb,是对 C 语言操作 MySQL 数据库的一个简单封装,遵循了 Python DB API v2,但是只支持 Python2。
-
mysqlclient:是 MySQL-python 的另外一个分支。支持 Python3 并且修复了一些 bug,是目前为止执行效率最高的驱动,但是安装的时候容易因为环境问题出错。
-
pymysql:纯 Python 实现的一个驱动。因为是纯 Python 编写的,因此执行效率不如 mysqlclient 高。也正因为是纯 Python 写的,所以可以和 Python 代码无缝衔接。
-
mysql-connector-python: MySQL 官方推出的纯 Python 连接 MySQL 的驱动,执行效率比 pymysql 还低。
为了减少读者出错,提高学习效率,本书选择使用 pymysql 作为驱动程序。读者在学完本章内容后,如果有需要,可以自行考虑移植到 mysqlclient。pymysql 是一个第三方包,因此需要通过以下命令安装。
pip install pymysql
Flask-SQLAlchemy
在 Flask 中,我们很少会使用 pymysql 直接写原生 SQL 语句去操作数据库,更多的是通过 SQLAlchemy 提供的 ORM 技术,类似于操作普通 Python 对象一样,实现对数据库的增、删、改、查操作。而 Flask-SQLAlchemy 是对 SQLAlchemy 的一个封装,这使得在 Flask 中使用 SQLAlchemy 更加方便。Flask-SQLAlchemy 需要单独安装,因为 Flask-SQLAlchemy 依赖 SQLAlchemy,所以只要安装了 Flask-SQLAlchemy,SQLAlchemy便会自动安装。安装命令如下。
pip install flask-sqlalchemy
SQLAlchemy 类似于 Jinja2,可以独立于 Flask 使用,而且完全可以在任何 Python 程序中使用。SQLAlchemy 的功能非常强大,本书不能全部都讲到,读者如果有兴趣,可以在学完本章内容后阅读 SQLAlchemy 的官方文档 https://www.sqlalchemy.org/ 进行深入研究。