本书使用的数据库是目前最新的MySQL 8.0版本,读者在学习后续内容之前,要先下载和安装好该软件。关于MySQL软件的使用方法不在本书的讲解范围内,如果读者对MySQL的下载和安装有疑问,可以参考以下两个链接。
(1)官方下载链接为https://dev.mysql.com/downloads/mysql/。读者可以根据自己的操作系统,下载不同的MySQL安装包。
(2)MySQL安装图文教程链接为https://zlkt.net/book/detail/10/306。
Flask要操作数据库,必须要先安装Python操作MySQL的驱动。在Python中,目前有以下MySQL驱动包。
(1)MySQL-python:也就是MySQLdb,是对C语言操作MySQL数据库的一个简单封装,遵循了Python DB API v2,但是只支持Python2。
(2)mysqlclient:是MySQL-python的另外一个分支。支持Python3并且修复了一些bug,是目前为止执行效率最高的驱动,但是安装的时候容易因为环境问题出错。
(3)pymysql:纯Python实现的一个驱动。因为是纯Python编写的,因此执行效率不如mysqlclient高。也正因为是纯Python写的,所以可以和Python代码无缝衔接。
(4)mysql-connector-python: MySQL官方推出的纯Python连接MySQL的驱动,执行效率比pymysql还低。
为了减少读者出错,提高学习效率,本书选择使用pymysql作为驱动程序。读者在学完本章内容后,如果有需要,可以自行考虑移植到mysqlclient。pymysql是一个第三方包,因此需要通过以下命令安装。
pip install pymysql
在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/进行深入研究。