Python 3 下使用 Flask-SQLAlchemy + MySQL
Wed, Jul 27, 2016按照 Flask-SQLAlchemy 文档的说明,配置好 SQLALCHEMY_DATABASE_URI = 'mysql://username:password@server/db'
后操作 MySQL 报错 ImportError: No module named 'MySQLdb'
。既然缺少 MySQLdb 这个模块,按照正常的想法执行 pip install MySQL-python
应该能解决,但是却报错 ImportError: No module named 'ConfigParser'
。查了一下,这是由于 MySQL-python 不支持 Python 3(MySQL-3.23 through 5.5 and Python-2.4 through 2.7 are currently supported)。
于是 找到了一个替代—— PyMySQL(还有一个 可能的选择 是 oursql)。执行 pip install PyMySQL
,将数据库连接改为 mysql+pymysql://username:password@server/db
,接下来的操作就一切正常了。
其他备忘:
- 执行 Flask-Migrate 的
python manage.py db migrate
时报错sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1049, "Unknown database 'testdb'")
,是因为要先建好数据库才能访问,SQLAlchemy 不会自己创建数据库。 数据库连接和依赖配置好后,依次执行:
$ python manage.py db init $ python manage.py db migrate $ python manage.py db upgrade