报错代码:
用户登录验证时查找用户报错
报错:
ModuleNotFoundError: No module named 'MySQLdb'
错误原因:
是因为 flask_sqlalchemy 中默认使用 MySQLdb 连接数据库
而这个包仅支持py2语法,所以要单独安装 pymysql 并使用它作为flask_sqlalchemy连接的内核。
解决:
安装pymysql
pip install pymysql
在生成数据库连接对象时添加以下代码
import pymysql
pymysql.install_as_MySQLdb()
整体代码为:
import os
import pymysql
from flask import Flask
from flask_login import LoginManager
from flask_mail import Mail
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
from flask_bootstrap import Bootstrap
# flask
app = Flask(__name__)
# 加载flask配置
app.config.root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
app.config.from_pyfile('config.py')
# database
pymysql.install_as_MySQLdb()
db = SQLAlchemy(app)