最近学习Flask框架,在使用数据库MySQL时提示我导入失败,由于我使用的是Python3,目前是不支持MySQL的,没办法就去百度刷博客。
终于找到解决方法,只要使用pip3 install pymysql就行了,于是我就在命令行中粘贴回车,在pychrom中运行程序,结果还是报错:No module name mysql ,我想了一下,应该还是我的python解释器问题,于是我又找了一下,发现python3连接数据库的表述跟python2是不一样的,
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1234@127.0.0.1/flask_sql_demo'
而python2是
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:1234@127.0.0.1/flask_sql_demo'
这也是目前python3使用MySQL的方法,其他的我就不知道了,
在继续运行,结果又报错了,no module name pymysql, 这是什么鬼,我明明安装了pymysql却又提示我没安装,这是最坑的地方,因为你可能会误认为是python3不支持MySQL,然后就去使用python2了,然而实际上并不是,只是我们安装的位置不对,我们使用的Flask是虚拟环境中的,在.virtualenv中,也就是说我们的控制台安装的只是在真实的环境中的,在虚拟环境中并没有安装,而我们的Flask框架又刚好在虚拟环境中,也就提示没有安装pymysql了。所以解决的关键在于虚拟环境中安装pymysql,如之前创建虚拟环境一样,我们必须把当前的工作环境设置在虚拟环境中,使用workon 命令,如我使用的是workon flask_py3,进入虚拟环境,在使用pip安装pymysql就行了(记住前面不要加sudo),在运行程序就不会报错了
还要特别注意一点,使用pip3、ipython3等指令,使用pip和ipython会出错