最近在学习Flask,这方面的书籍不多,我是看《Flask.Web.Development》这本书来学习的,书中使用的数据库是SQLLite,实际开发中使用MySQL比较多,因此我就换成了MySQL,配置好之后却报“no module named MySQLdb”错误,查了一下,需要安装MySQLdb模块,本以为很简单,一句命令的事情,没想到按照的过程遇到好几个错误,就写篇文章记录一下
首先在执行命令:
pip install MySQL-python
报EnvironmentError: mysql_config not found错误。如下图所示
查了一下资料,需要先安装mysql_config,可以使用下面这个命令安装:
sudo apt-get install libmysqlclient-dev
注意,在这有可能会按照不成功,不过根据提示,是因为需要先执行
sudo apt-get update
更新软件源,然后执行上一个命令就可以了,最后再执行最初的安装MySQL-python命令就可以了。
最后可以测试一下:
最后有点需要注意的是:使用Flask-Migrate管理数据库的时候,与SQLLite集成不需要手动创建数据库,但是与MySQL集成的时候,需要先手动在MySQL中创建数据库,
然后就可以使用下述命令初始化创建迁移仓库以及迁移脚本,然后执行更新命令更新,把模型变动应用到数据库中。
python manage.py db init
python manage.py db migrate -m "initial migration"
python manage.py db upgrade
如下图所示:数据库是手动创建的,但是表是自动根据model生成的。
参考文章
http://stackoverflow.com/questions/16438259/installing-mysql-python-for-django