Win10+Python+Django+Nginx+MySQL开发教程及实例(2)——Python操作MySQL
Win10+Python+Django+Nginx+MySQL开发教程及实例
PaulTsao
本系列教程共有四篇内容:
第四篇*:创建个人博客
第五篇*:个人博客网站上云部署并运行
第二篇:Win10+Python+Django+Nginx+MySQL 开发环境,用Python操作MySQL
前提:开发环境已经如前文所述搭建正确。
理论方法:python连接mysql常用的库如下
1,mysql-python也就是MySQLdb;
2,PyMySQL。支持jython,IronPython,CPython等;
3,MySQL Connector/Python。纯python实现的MySQL接口,由Oracle维护;
实现方法:采用第一种方法库实现。
(1)安装MySQL-python-1.2.5
安装步骤如下:
1)管理员身份运行CMD或Power Shell,进入D:\MySQL-python-1.2.5
1 2 3 | cd D:\MySQL-python-1.2.5 # 进入 MySQL-python-1.2.5 目录 python setup.py install # 执行安装命令 |
报错如下:
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
error: command 'C:\\Users\\apollo\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2
2)遂安装 Microsoft Visual C++ Compiler Package for Python 2.7 ,查询MS官网VCForPython27.msi有说明如下:
“The compiler package will default to installing just for the current user and does not require administrative privileges. To install for all users of a machine, execute msiexec /i <path to MSI> ALLUSERS=1 from an elevated Command Prompt.”
故以管理员身份“本机全用户”安装,如下:
1 2 3 | PS C:\WINDOWS\system32> cd D:\MySQL-python-1.2.5 PS D:\MySQL-python-1.2.5> msiexec /i VCForPython27.msi ALLUSERS=1 |
安装路径不可选,默认安装的路径为:
C:\Users\apollo\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin
并将此路径添加到系统环境变量,避免无法调用或报错。
提示:这个还有其他安装方法:
a).exe文件格式
1 | MySQL-python-1.2.5.win32-py2.7.exe #双击,下一步安装,安装路径不可选 |
b).zip压缩文件格式
管理员身份运行CMD或Power Shell,进入解压后文件所在目录,如D:\MySQL-python-1.2.5
1 2 3 | cd D:\MySQL-python-1.2.5 # 进入 MySQL-python-1.2.5 目录 python setup.py install # 执行安装 |
3)安装 MySQL Connector C 6.0.2
后来又通过资料和验证得知,这个是必须要安装的,不然也不行。
1 | mysql-connector-c-6.0.2-win32.msi # 双击安装,安装路径不可选 |
默认安装的路径为:
C:\Program Files\MySQL\MySQL Connector C 6.0.2\bin
同时,将此路径添加到系统环境变量,以避免无法调用或报错。
4)修改MySQL-python-1.2.5的配置文件site.cfg
这里是另一处报错常出现的地方。
实际上,如果是在32 位系统上部署,那么pip install 安装MySQL-python 1.2.5 ,只需进行上面的依赖包安装即可。这在Python3.x上很方便。但是你会发现Python2.7中貌似不行。
那么修改 site.cfg 文件或可解决。 因为在 64 位系统中,有Program Files (x86)和Program Files 这两个文件。有可能会提示“Cannot open include file: 'config-win.h'” 的错误。 原因就是 site.cfg 中写的 MySQL Connector C 为32 位版本或者系统依赖的路径是Program Files 。
原来的 site.cfg 文件内容如下:
# http://stackoverflow.com/questions/1972259/mysql-python-install-problem-using-virtualenv-windows-pip
# Windows connector libs for MySQL. You need a 32-bit connector for your 32-bit Python build.
connector = C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2
将其(x86)去掉,即可:
connector = C:\Program Files\MySQL\MySQL Connector C 6.0.2
(2)检验Python到MySQL是否连通
检验1:
进入Python ,输入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #coding=utf-8 import MySQLdb conn= MySQLdb.connect(host= 'localhost' ,user= 'root' ,passwd= '132456' ,db = 'test' ,) cur = conn.cursor() #在test数据库中创建数据表student cur.execute( "create table student(id int ,name varchar(20),class varchar(30),age varchar(10))" ) cur.close() conn.commit() conn.close() |
查验结果:
以管理员身份打开PowerShell或CMD,进入MySQL:
1 2 3 | PS C:\WINDOWS\system32> cd D:\MySQL\MySQLServer-5.5\bin PS D:\MySQL\MySQLServer-5.5\bin> mysql -u root -p Enter password: 132456 |
分步输入以下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | mysql> use test; Database changed mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | student | +----------------+ 1 row in set (0.00 sec) mysql> desc student; # 显示student表结构 +-------+-------------+---- | Field | Type | Nul +-------+-------------+---- | id | int (11) | YES | name | varchar(20) | YES | class | varchar(30) | YES | age | varchar(10) | YES +-------+-------------+---- 4 rows in set (0.17 sec) |
如下图:
显示结果表明:
Test数据库中已添加student表,并且表结构与我们设计的一致。表示Python连通操作MySQL成功。
检验2:
连接MySQL,逐行输入以下Python代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # -*- coding: utf8 -*- import MySQLdb conn=MySQLdb.connect(host= 'localhost' , user= 'root' , passwd= '1' , db= 'test' ) cursor = conn.cursor() cursor.execute ( "SELECT VERSION()" ) row = cursor.fetchone () print "server version:" , row[0] cursor.close() conn.close() |
输出:
1 | server version: 5.5.58 |
说明:Win10下Python连通MySQL正确。
作者信息:
PaulTsao
Github: github.com/apollocaoy
Linkedin:www.limkedin.com/apollocaoy
E-mail:apollocaoy@foxmail.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步