版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z919167107/article/details/89601688
按照这里的教程进行数据库连接的操作,代码如下:
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'root'
app.config['MYSQL_DB'] = 'MyDB'
mysql = MySQL(app)
,结果报出以下错误:
Traceback (most recent call last):
File "F:\File\PythonProject\myFlaskBlog\pflask\hello.py", line 10, in <module>
mysql=MySQL(app)
NameError: name 'MySQL' is not defined
报出该错的代码位置为:
mysql=MySQL(app)
mysql=MySQL(app)
经过查询 发现是自己的基于python环境的mysql开发包没有安装,因此首先使用pip进行安装:
安装mysql驱动包有以下几种选择:
MySQL-python:这个包包含MySQLdb模块,用C语言编写。它是MySQL最常用的Python包之一。
Mysql-connector-python:这个包包含mysql.connector模块,它完全用Python编写。
PyMydSQL:这个包包含pymysql模块,它完全用Python编写。它被设计成MySQL-python包的替代品。
选择以上任意一种安装即可
在这里我使用第一个包,执行以下命令
pip install MySQL-python
发现报错:
Collecting MySQL-python
Using cached https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip
Installing collected packages: MySQL-python
Running setup.py install for MySQL-python ... error
ERROR: Complete output from command 'f:\file\python\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\91916\\AppData\\Local\\Temp\\pip-install-ai73_59b\\MySQL-python\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\91916\AppData\Local\Temp\pip-record-es8ngzae\install-record.txt' --single-version-externally-managed --compile:
ERROR: running install
running build
running build_py
creating build
creating build\lib.win32-3.7
copying _mysql_exceptions.py -> build\lib.win32-3.7
creating build\lib.win32-3.7\MySQLdb
copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
copying MySQLdb\converters.py -> build\lib.win32-3.7\MySQLdb
copying MySQLdb\connections.py -> build\lib.win32-3.7\MySQLdb
copying MySQLdb\cursors.py -> build\lib.win32-3.7\MySQLdb
copying MySQLdb\release.py -> build\lib.win32-3.7\MySQLdb
copying MySQLdb\times.py -> build\lib.win32-3.7\MySQLdb
creating build\lib.win32-3.7\MySQLdb\constants
copying MySQLdb\constants\__init__.py -> build\lib.win32-3.7\MySQLdb\constants
copying MySQLdb\constants\CR.py -> build\lib.win32-3.7\MySQLdb\constants
copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.7\MySQLdb\constants
copying MySQLdb\constants\ER.py -> build\lib.win32-3.7\MySQLdb\constants
copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.7\MySQLdb\constants
copying MySQLdb\constants\REFRESH.py -> build\lib.win32-3.7\MySQLdb\constants
copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.7\MySQLdb\constants
running build_ext
building '_mysql' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
----------------------------------------
ERROR: Command "'f:\file\python\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\91916\\AppData\\Local\\Temp\\pip-install-ai73_59b\\MySQL-python\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\91916\AppData\Local\Temp\pip-record-es8ngzae\install-record.txt' --single-version-externally-managed --compile" failed with error code 1 in C:\Users\91916\AppData\Local\Temp\pip-install-ai73_59b\MySQL-python\
经过查询得知MySQL-Python包只支持Python API2.0的接口,即该包仅支持python2.x,Python3.x版本需要安装mysqlclient
因为我使用的版本是python3 ,因此安装mysqlclient
在命令行中执行以下指令查看当前使用python的版本以及位数:
F:\File\PythonProject\myFlaskBlog>python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
发现是32位,因此在这个网站下载对应版本以及对应位数的mysqlclient轮子,文件名称为:mysqlclient-1.4.2-cp37-cp37m-win32.whl
下载完成后将该文件放至任意一个文件夹,然后再在该文件夹中打开命令行,执行
pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
得到以下结果:
F:\File\PythonProject\myFlaskBlog>pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
Processing f:\file\pythonproject\myflaskblog\mysqlclient-1.4.2-cp37-cp37m-win32.whl
Installing collected packages: mysqlclient
Successfully installed mysqlclient-1.4.2
成功安装mysqlclient