Python对数据库操作


Posted in Python onMarch 28, 2016

Windows下安装MySQL-python

下载地址:https://pypi.python.org/pypi/MySQL-python/1.2.5 安装到系统即可。

linux下安装MySQL-python以连接MySQL:

下载地址:https://pypi.python.org/pypi/MySQL-python/

解压后,进入目录下,执行python setup.py install

安装过程中,常会遇到的问题:

1、 提示找不到mysql_config的话,一般是由于mysql采用的是lnmp一键安装包安装的,路径

解决:locate mysql_config找到mysql_config这个文件的位置,然后ln -s做个软连接到/usr/bin/下。

2、 Ubuntu下提示缺少'x86_64-linux-gnu-gcc'时,需要安装python-dev包:

解决:sudo apt-get install python-dev -y

3、 CentOS下提示command 'gcc' failed with exit status 1

解决:yum install gcc python-devel -y

安装完成后,进入python,执行import MySQLdb看导入是否能成功。

补充:

我在ubuntu下操作时候,发现无法连接数据库,ss -lnt发现mysql只监听在回环地址上的3306端口,需要修改下。
修改Ubuntu的mysql,将其监听端口127.0.0.1:3306改为允许外部连接的方法:
编辑/etc/mysql/my.cnf(可能配置参数再此目录下的其它文件中,仔细找找)
修改bind-address = 0.0.0.0 表示允许任意IP访问。
然后执行 /etc/init.d/mysql restart重启mysqlserver服务即可

# 下面是一个Python操作数据库的例子:

#!/usr/bin/env python
# -*- coding:utf8 -*-
import MySQLdb
conn = MySQLdb.connect(
host = '192.168.2.14',
port = 3306,
user = 'root',
passwd = '123456',
db = 'demo',
)
# 操作数据库首先需要创建游标
cur = conn.cursor()
# 通过游标cur操作execute()方法可以写入纯sql语句,如下:
# 创建数据表
# cur.execute("create table teacher (id int(5),name varchar(20),class varchar(20),age varchar(10))")
# 插入数据
# cur.execute("insert into teacher values(23,'zhangsan','science',15)")
# 修改数据
# cur.execute("update teacher set id=100 where name='zhangsan'")
# 删除数据
# cur.execute("delete from teacher where id=100")
#插入一条数据【也可以用像下面这种写法】
sqli="insert into teacher values(%s,%s,%s,%s)"
cur.execute(sqli, (23,'zhangsan','science',15))
# 使用executemany一次性向数据表中插入多条值,返回值为受影响的行数。
sqli="insert into teacher values(%s,%s,%s,%s)"
cur.executemany(sqli,[
(11,'wangwu','art',23),
(8,'john','math',22),
(3,'Tom','physical',25),
])
# 最后关闭游标,执行提交操作,并关闭数据库连接
cur.close()
conn.commit()
conn.close()

检索并输出数据

#!/usr/bin/env python
# -*- coding:utf8 -*-
import MySQLdb
conn = MySQLdb.connect(
host = '192.168.2.14',
port = 3306,
user = 'root',
passwd = '123456',
db = 'demo',
)
cur = conn.cursor()
# 获得表中有多少条数据
aa = cur.execute("select * from teacher")
cur.fetchone() # fetchone()方法可以帮我们获得表中的数据,但是每执行一次输出一行满足条件的值
cur.fetchone()
......
cur.scroll(0,'absolute')# 这样能将游标定位到表中的第一条数据
info = cur.fetchmany(aa)
for i in info:
print i
cur.close()
conn.commit()
conn.close()

有关Python对数据库操作小编就给大家介绍这么多,希望对大家有所帮助!

Python 相关文章推荐
python读写二进制文件的方法
May 09 Python
python操作ie登陆土豆网的方法
May 09 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
Nov 21 Python
Pandas之drop_duplicates:去除重复项方法
Apr 18 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
使用Keras预训练模型ResNet50进行图像分类方式
May 23 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
Python实现我的世界小游戏源代码
Mar 02 Python
python创建字典及相关管理操作
Apr 13 Python
Python字符串切片操作知识详解
Mar 28 #Python
python Django框架实现自定义表单提交
Mar 25 #Python
python Django批量导入数据
Mar 25 #Python
python Django批量导入不重复数据
Mar 25 #Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 #Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 #Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 #Python
You might like
使用PHP模拟HTTP认证
2006/10/09 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP的开发框架的现状和展望
2007/03/16 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
JavaScript 比较时间大小的代码
2010/04/24 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
django如何连接已存在数据的数据库
2018/08/14 Python
python怎么自定义捕获错误
2020/06/29 Python
Python 忽略文件名编码的方法
2020/08/01 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
Python使用openpyxl复制整张sheet
2021/03/24 Python
行政办公员自我评价分享
2013/12/14 职场文书
师说教学反思
2014/02/07 职场文书
企业总经理任命书
2014/06/05 职场文书
公司员工安全协议书
2014/11/21 职场文书
2014年预算员工作总结
2014/12/05 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python