2019独角兽企业重金招聘Python工程师标准>>>

python实践3:cursor() — 数据库连接操作

(2012-05-07 11:00:40)

转载▼

标签:

it

python 操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我们就可以使用MySQLdb这个包进行数据库操作了。

操作步骤如下:
    1、建立数据库连接
     import MySQLdb
     conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")
    cursor=conn.cursor()
    2、执行数据库操作
     n=cursor.execute(sql,param)
     我们要使用连接对象获得一个cursor对象,接下来,我们会使用cursor提供的方法来进行工作.
     这些方法包括两大类:1.执行命令,2.接收返回值

3、cursor用来执行命令的方法:

     callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
     execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
     executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
     nextset(self):移动到下一个结果集

    4、cursor用来接收返回值的方法:

     fetchall(self):接收全部的返回结果行.
     fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
     fetchone(self):返回一条结果行.
     scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一 行移动value条.
    
    5、下面的代码是一个完整的例子.

#使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s
    sql="insert into cdinfo values(%s,%s,%s,%s,%s)"
    #param应该为tuple或者list
    param=(title,singer,imgurl,url,alpha)
    #执行,如果成功,n的值为1
     n=cursor.execute(sql,param)
    #再来执行一个查询的操作
    cursor.execute("select * from cdinfo")
    #我们使用了fetchall这个方法.这样,cds里保存的将会是查询返回的全部结果.每条结果都是一个tuple类型的数据,这些tuple组成了一个tuple
    cds=cursor.fetchall()
    #因为是tuple,所以可以这样使用结果集
    print cds[0][3]
    #或者直接显示出来,看看结果集的真实样子
    print cds
    #如果需要批量的插入数据,就这样做
     sql="insert into cdinfo values(0,%s,%s,%s,%s,%s)"
    #每个值的集合为一个tuple,整个参数集组成一个tuple,或者list
     param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))
    #使用executemany方法来批量的插入数据.这真是一个很酷的方法!
     n=cursor.executemany(sql,param)
     需要注意的是(或者说是我感到奇怪的是),在执行完插入或删除或修改操作后,需要调用一下conn.commit()方法进行提交.这样,数据才会真正保 存在数据库中.我不清楚是否是我的mysql设置问题,总之,今天我在一开始使用的时候,如果不用commit,那数据就不会保留在数据库中,但是,数据 确实在数据库呆过.因为自动编号进行了累积,而且返回的受影响的行数并不为0.

6、关闭数据库连接

需要分别的关闭指针对象和连接对象.他们有名字相同的方法
     cursor.close()
     conn.close()

Django操作数据库
     django是一个出色的用于python的web框架。django连接有操作数据库的api,使用起来十分简洁。我们在settings.py中配置好所要连接的数据库,然后在modules、view、urls中分别写好业务逻辑

转载于:https://my.oschina.net/jarsleo/blog/619052

python mysql相关推荐

  1. python mysql 驱动安装

    为什么80%的码农都做不了架构师?>>>    安装组件: python 3.4 + django 1.7 + mysql connector driver 系统平台: window ...

  2. python mysql 转义方法

    最近用python做项目的时候用到了mysql,把用python抓取的一些是数据放到mysql里去,但是有个问题,因为从外面抓取的数据有带'等其他的不规则的数据,如果你直接调用插入数据的方法会提示报错 ...

  3. python + MySql 基本操作

    python + mysql数据库的链接 1.安装mysql pip install PySQLdb 2.连接数据库 # -*- coding: UTF-8 -*-import MySQLdb# 打开 ...

  4. python mysql数据库长连接_python 长连接 mysql数据库

    python 长连接数据库 python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能 思路: 1 python mysql 的cping 函数会校验链接的 ...

  5. Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理

    基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客  QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3 ...

  6. 第一节、Alex 讲解 python+mysql 交互;

    Python Mysql 交互 A.Alex 的语法展示: import MySQLdb try: conn=MySQL.connect(host='localhost',user='root',pa ...

  7. Python—Mysql—Dbvisualizer

    MySQLdb: https://pypi.python.org/pypi/MySQL-python/1.2.4 import MySQLdb 1.Download Connector/Python: ...

  8. 今日代码(200725)--数据录入(python+mysql)

    代码记录 数据录入(python+mysql) 前言 相比于200612代码增加了一个性别.运动员编号.运动员姓名字段. 代码 # -*- coding: utf-8 -*-import re imp ...

  9. kettle大于0的转换成1_第一期实训周:基于Python+MySQL+Kettle+R的某网站数据采集分析...

    ↓ 基于Python+MySQL+Kettle+R的 某网站数据采集分析 哈喽!各位学员们 咱们第一期课程就要开始了 下面划重点! 一 高校院系 齐鲁工业大学数学与统计学院应用统计系 二 实训日期 2 ...

  10. python MySQL 插入Elasticsearch

    一.需求分析 注意: 本环境使用 elasticsearch 7.0版本开发,切勿低于此版本 mysql 表结构 有一张表,记录的数据特别的多,需要将7天前的记录,插入到Elasticsearch中, ...

最新文章

  1. QIIME 2教程. 30补充资源SupplementaryResources(2021.2)
  2. Hystrix入门指南
  3. Flutter开发之布局-4-container(18)
  4. 技术人生:我喜欢年纪不断变大
  5. [转载]PSCAD调用MATLAB/SIMULINK之接口元件设计
  6. sscanf函数和正则表达式
  7. 开工大吉:Oracle 18c已经发布及新特性介绍
  8. Codeforces 213E Two Permutations 线段树 (看题解)
  9. 做程序员要有“疯子精神”,中国开源开放的科创人才要如何培养?
  10. react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)
  11. Python多线程小例子
  12. VMware解决黑屏
  13. 人脸识别眨眼张嘴软件_手机端APP活体真活人检测扫描人脸识别SDK之张嘴摇头眨眼点头确认真人非...
  14. oracle 归档日志 重做日志,Oracle的重做日志和归档日志
  15. Excel 数据透视表
  16. 中科院 2014年工程硕士入学专业课笔试考场安排
  17. 双系统下Deepin的安装和卸载(Deepin20.2+Win10)
  18. 让AI帮你玩游戏(一) 基于目标检测用几个样本帮你实现在魔兽世界中钓鱼(群已满)
  19. 求职真的是欲哭无泪,520,521还要继续找工作
  20. 浪潮服务器(NF5280M4)安装window server 2008R2系统

热门文章

  1. SLAM精度测评——EVO进阶
  2. 关于进程间通信的学习心得
  3. nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除
  4. posix_memalign
  5. 以金山界面库(openkui)为例思考和分析界面库的设计和实现——资源读取模块分析
  6. 【FFmpeg】函数详解(二)
  7. #Ruby# Introspect (1)
  8. jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片
  9. php五只猴子分椰子_tubes五只雪茄_phillies雪茄五只装
  10. eclipse xsd 生成java,Generate XSD from JAXB Java Classes using Eclipse