Python 数据库连接,python连接数据库的基本步骤是什么

  Python 数据库连接,python连接数据库的基本步骤是什么

  摘要:

  用计算机编程语言写脚本也有一段时间了,经常操作数据库(MySQL),现在就整理下对各类数据库的操作,如后面有新的参数会补进来,慢慢完善。

  一,python操作MySQL:详情见:这里

  老兄安装:http://sourceforge.net/projects/mysql-python/?source=dlp再sudo python setup.py构建

  【apt-get安装python-mysqldb】

  【百胜安装python-devel pip安装MySQL-python】

  【百胜安装python-devel mysql-devel pip安装mysql-python】

  #!/bin/env python

  # -*-编码:utf-8 -*-

  # -

  #目的:python_to_mysql示例

  #作者:周教育行业标准

  #创建时间:2013-06-14

  #更新时间:2013-06-14

  # -

  导入转载

  导入操作系统

  #建立和数据库系统的连接,格式

  # conn=mysqldb。connect(host= localhost ,user=root ,passwd=123456 ,db=test ,port=3306,charset=utf8 )

  #指定配置文件,确定目录,或则写绝对路径

  CWD=OS。路径。真实路径(OS。路径。目录名(_ _文件_ _))

  db_conf=os.path.join(cwd, db.conf )

  conn=mysqldb。connect(read _ default _ file=db _ conf,host=localhost ,db=test ,port=3306,charset=utf8 )

  #要执行的结构化查询语言语句

  查询=从T1级(一种通讯线路的名称)中选择id

  #获取操作游标

  cursor=conn.cursor()

  #执行结构化查询语言

  游标。执行(查询)

  #获取一条记录,每条记录做为一个元组返回,返回3,游标指到第2条记录。

  result1=cursor.fetchone()

  对于结果一中的我:

  打印我

  #返回影响的行数

  打印光标。行数

  #获取指定数量记录,每条记录做为一个元组返回,返回1,2,游标从第2条记录开始,游标指到第四条记录。

  result2=cursor.fetchmany(2)

  对于结果2中的我:

  对于我中的二:

  打印二

  #获取所有记录,每条记录做为一个元组返回,返回3,4,7,6,游标从第四条记录开始到最后。

  result3=cursor.fetchall()

  对于结果3中的我:

  对于我中的二:

  打印二

  #获取所有记录,每条记录做为一个元组返回,返回3,4,7,6,游标从第一条记录开始

  #重置游标位置,0为偏移量,模式=绝对相对,默认为亲戚

  cursor.scroll(0,mode=absolute )

  result3=cursor.fetchall()

  对于结果3中的我:

  对于我中的二:

  打印二

  #以下2种方法都可以把数据插入数据库:

  #(一个)

  对于范围内的我(10,20):

  query2=insert into t1 values(%d ,now()) %i

  游标. execute(查询2)

  #提交

  conn.rollback()

  #(两个)

  行数=[]

  对于范围内的我(10,20):

  rows.append(i)

  query2=insert into t1 values(%s ,now())

  #执行许多2个参数,第2个参数是变量。

  cursor.executemany(查询2,行)

  #提交

  conn.commit()

  #选择数据库

  查询3=从dba _医院中选择id

  #重新选择数据库

  conn.select_db(初十化)

  游标. execute(查询3)

  result4=cursor.fetchall()

  对于结果四中的我:

  对于我中的二:

  打印二

  #不定义查询,直接执行:

  光标。execute( set session binlog _ format= mixed )

  #关闭游标,释放资源

  cursor.close()

  - -

   id 修改日期

  - -

   3 2010-01-01 00:00:00

   1 2010-01-01 00:00:00

   2 2010-01-01 00:00:00

   3 2010-01-01 00:00:00

   4 2013-06-04 17:04:54

   7 2013-06-04 17:05:36

   6 2013-06-04 17:05:17

  - -

  注意:在脚本中,密码写在脚本里面很容易暴露,这样可以用一个配置文件的方式来存密码,如数据库会议:

  [客户]

  用户=根

  密码=123456二,python操作MongoDB:详情见这里和这里以及这里

  #!/bin/env python

  # -*-编码:utf-8 -*-

  # -

  #目的:python_to_mongodb示例

  #作者:周教育行业标准

  #创建时间:2013-06-14

  #更新时间:2013-06-14

  # -

  导入安装

  导入操作系统

  #建立和数据库系统的连接,创建关系时,指定宿主及港口参数

  conn=pymongo .连接(主机=127.0.0.1 ,端口=27017)

  #管理员数据库有帐号,连接-认证-切换库

  db_auth=conn.admin

  db_auth.authenticate(sa , sa )

  #连接数据库

  db=conn.abc

  #连接表

  集合=db.stu

  #查看全部表名称

  数据库集合名称()

  #打印数据库集合名称()

  #访问表的数据,指定列

  item=collection.find({},{sname:1, course:1, _id:0})

  对于项目中的行:

  打印rows.values()

  #访问表的一行数据

  print collection.find_one()

  #得到所有的列

  对于collection.find_one()中的行:

  打印行

  #插入

  collection.insert({sno:100, sname:jl , course:{D:80, S:85}})

  #或

  u=dict(sno=102,sname=zjjj ,course={D:80, S:85})

  收集。插入(u)

  #得到行数

  打印collection.find()。计数()

  打印收藏。查找({ SnO :100 })

  #排序,按照某一列的值皮蒙戈.降序:倒序;皮蒙戈。升序:升序。按照学号倒序

  item=collection.find().sort(sno ,pymongo .降序)

  对于项目中的行:

  打印rows.values()

  #多列排序

  item=collection.find().排序([(sno ,pymongo .降序),( A ,pymongo .升序)])

  #更新,第一个参数是条件,第二个参数是更新操作,$set,%inc,$push,$ne,$addToSet,$rename等

  collection.update({sno:100},{$set:{sno:101}})

  #更新多行和多列

  collection.update({sno:102},{$set:{sno:105, sname:SSSS}},multi=True)

  #删除,第一个参数是条件,第二个参数是删除操作。

  collection.remove({sno:101})

  sno:学号;名称:姓名;课程:科目

  db.stu.insert({sno:1, sname :张三, course:{A:95, B:90, C:65, D:74, E:100}})

  db.stu.insert({sno:2, sname :李四, course:{A:90, B:85, X:75, Y:64, Z:95}})

  db.stu.insert({sno:3, sname :赵五、 course:{A:70, B:56, F:85, G:84, H:80}})

  db.stu.insert({sno:4, sname:zhoujy , course:{A:64, B:60, C:95, T:94, Y:85}})

  db.stu.insert({sno:5, sname:abc , course:{A:87, B:70, Z:56, G:54, H:75}})

  db.stu.insert({sno:6, sname :杨六, course:{A:65, U:80, C:78, R:75, N:90}})

  db.stu.insert({sno:7, sname :陈二, course:{A:95, M:68, N:84, S:79, K:89}})

  db.stu.insert({sno:8, sname:zhoujj , course:{P:90, B:77, J:85, K:68, L:80}})

  db.stu.insert({sno:9, sname:ccc , course:{Q:85, B:86, C:90, V:87, U:85}})

  计算数据库文档中各集合的数目:

  导入安装

  conn=pymongo .连接(主机=127.0.0.1 ,端口=27017)

  db=conn.abc #abc文档

  对于数据库集合名称()中的tb _ name循环出各集合名

  Count=db[tb_name].count() #计算各集合的数量

  如果计数为2: #过滤条件

  打印tb_name :字符串(计数)

  conn=pymongo .连接(主机=127.0.0.1 ,端口=27017)

  db=conn.abc

  对于数据库集合名称()中的tb_name:

  打印tb_name :

  exec(print db tb_name ).count()) #变量当集合的处理方式

  运筹学

  conn=pymongo .连接(主机=127.0.0.1 ,端口=27017)

  db=conn.abc

  对于数据库集合名称()中的tb_name:

  mon_dic=db.command(collStats ,tb_name) #以字典形式返回

  打印mon_dic.get(ns ),mon_dic.get(count )

   更新时间:2015-06-30

  MongoDB升级到了3.0之后,用大蟒的连接会出错:

  py mongo。错误。操作失败:命令SON([(authenticate ,1),( user ,udba ),( nonce ,u8c7842b068e14d3 ),( key ,u 584 EC 63 f1 cdfd 8525 ce 33d 99 CD 269 c 2c ))失败:auth失败表示认证失败,说明MongoDB升级之后,对用用户的加密方式改变了。那就升级皮蒙戈。

  zhoujy@zhoujy:~$ sudo pip安装皮蒙戈-升级

  [须藤]周的密码:

  .

  .

  成功安装安装

  清理.升级成功,要是没有安装皮普,看这里:http://www。咸鹤。com/blog/2010/02/how-install-pip-Ubuntu/

  ubuntu10.10之后:

  $ sudo apt-get安装python-pip python-dev构建-基本

  $ sudo pip安装-升级点

  $ sudo pip安装-升级virtualenvubuntu10.10之前的老版本:

  $ sudo apt-get安装python-设置工具python-dev build-essential

  $ sudo easy_install pip

  $ sudo pip安装-升级虚拟环境升级成功之后,继续执行大蟒脚本,还是出错:

  属性错误:"模块"对象没有属性"连接"表示没有连接,皮蒙戈升级完之后不支持了,看手册,发现用MongoClient来替换了联系。修改脚本:

  conn=pymongo .连接(主机=127.0.0.1 ,端口=27017)

  改成

  conn=pymongo .MongoClient(主机=127.0.0.1 ,端口=27017)最后执行python,正常。

  三,python操作Redis:详情见这里和这里/这里;集群连接

  #!/bin/env python

  # -*-编码:utf-8 -*-

  # -

  #目的:python_to_mongodb示例

  #作者:周教育行业标准

  #创建时间:2013-06-14

  #更新时间:2013-06-14

  # -

  导入存储

  f=打开( aa.txt )

  虽然正确:

  line=f.readline().剥离()。拆分( # )

  if line==[]:

  破裂

  用户名、密码、电子邮件=行

  # print name.strip()、pwd.strip()、email.strip()

  rc=redis .StrictRedis(主机=127.0.0.1 ,端口=6379,数据库=15)

  rc.hset(名称:用户名,电子邮件,电子邮件)

  rc.hset(名称:用户名,密码,密码)

  f.close()

  alluser=rc.keys(* )

  #打印所有用户

  打印===============================读出存进去的数据===================================

  对于存放所有用户信息中的用户:

  打印"#"。join((user.split(:)[1],rc.hget(用户,密码),rc.hget(用户,电子邮件))一个管道的请看:这里

  四,python操作内存缓存:详情见这里和这里

  导入内存缓存

  mc=memcache .客户端([127.0.0.1:11211],debug=1)#!/usr/bin/env python

  #编码=utf-8

  导入转载

  导入内存缓存

  导入系统

  导入时间

  def get_data(mysql_conn):

  # nn=原始输入(按字符串名称:)

  mc=memcache .客户端([127.0.0.1:11211],debug=1)

  t1=time.time()

  值=MC。得到(《周金芽》)

  如果值==无:

  t1=time.time()

  打印T1级(一种通讯线路的名称)

  query=select company,email,sex,address from UC _ user _ offline where real name= zhoujinyia

  cursor=mysql_conn.cursor()

  游标。执行(查询)

  item=cursor.fetchone()

  t2=time.time()

  打印t2

  t=圆形(t2-t1)

  从关系型数据库打印成本%s秒%t

  打印项目

  mc.set(《周金鸭》,第60项)

  否则:

  t2=time.time()

  t=圆形(t2-t1)

  从内存缓存打印成本%s秒%t

  打印值

  if __name__==__main__ :

  MySQL _ conn=mysqldb。连接(host= 127。0 .0 .1 ,用户=root ,密码=123456 ,数据库=成员,端口=3306,字符集=utf8 )

  获取数据(mysql_conn)上面介绍了一些大蟒连接数据库,红色部分是连接操作的关键部分,大部分的操作没有列出来,具体的请见各官网。

  ~~~~~~~~~~~~~~~

  万物之中,希望至美

  ~~~~~~~~~~~~~~~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: