Python中的MySQLdb模块

前提已经安装了mysql,安装了setuptools,然后参考网页 http://jingyan.baidu.com/article/fedf07377ded3e35ad897750.html 将mysql和django关联。这样就可以将django里面的模型和数据库进行关联了。

如果不用django的模块,这里只是单纯的介绍Python里面的Mysqldb模块。参考 http://www.cnblogs.com/rollenholt/archive/2012/05/29/2524327.html  在其基础上,进行小部分删减和扩充。代码部分未完待续。以后用到新的需要再添加。

import MySQLdb
try:
    conn=MySQLdb.connect(host=‘127.0.0.1‘,user=‘root‘,passwd=‘123456‘,db=‘books‘,port=3306)   #连接数据库
    cur=conn.cursor()                  #取得数据库游标    cur.execute(‘select * from books_book‘) #执行数据库语句
    cur.close()  #关闭游标
    conn.close()   #关闭数据库
except MySQLdb.Error, e:
    print "MySQL Error %d: %s" % (e.args[0], e.args[1])
 
 import MySQLdb>>> conn=MySQLdb.connect(host=‘127.0.0.1‘,user=‘root‘,passwd=‘123456‘,port=3306)>>> cur=conn.cursor()    #在进入数据库就取得游标。类似于光标。一个激动可能会说成光标。通过执行数据库语句把游标移动到不同的位置,比如移动到某个库里,移动到某个库的某个表里。>>> cur.execute("use books")   ###这个也可以用  conn.select_db(‘books‘) #等同于数据库端的use database   然后是 cur=conn.cursor()  ###或者 conn=MySQLdb.connect(host=‘127.0.0.1‘,user=‘root‘,passwd=‘123456‘,db=‘books‘,port=3306) #连接数据库books0L>>> cur.execute("SELECT * FROM books_author")      #这样就把游标cur调到表books_author 中了。执行数据库语句,不用分号,大小写无妨  #输出显示一共有三条信息3L>>> cur.fetchone()      #每运行一次完毕,输出当前游标信息,同时,游标下移到下一个索引。要想看具体的信息结果,就用fetchone()和fetchall()属性。(1L, ‘Wendy‘, ‘Xu‘, ‘[email protected]‘)>>> cur.fetchone()      #每运行一次,游标下移一个索引。(2L, ‘Beryl‘, ‘Li‘, ‘[email protected]‘)>>> cur.fetchone()      #每运行一次,游标下移一个索引。因为一共三条信息,这里是最后一条。(3L, ‘Billly‘, ‘Xu‘, ‘[email protected]‘)>>> cur.fetchone()     #因为已经没有后续记录了,所以这里运行fetchone返回为空。>>> cur.fetchone()>>> cur.scroll(0,‘absolute‘)   #重新确认游标位置。数据库里面的第一条记录索引为0.  这里默认是relative,cur.scroll(2,‘relative‘) 在当前游标位置,往后挪2位。现在索引是第一个,那么relative这条语句执行后游标停在第三条上。absolute是绝对索引。指定游标停的绝对位置。>>> a=cur.fetchone()>>> a                            #a是一元元组,使用元组需要序列号索引。#a[0]=‘1L‘, a[1]=‘Wendy‘(1L, ‘Wendy‘, ‘Xu‘, ‘[email protected]‘)>>> a=cur.fetchall()>>> a    #a是三行元组  #暂时这样理解,不确定对。((1L, ‘Wendy‘, ‘Xu‘, ‘[email protected]‘), (2L, ‘Beryl‘, ‘Li‘, ‘[email protected]‘), (3L, ‘Billly‘, ‘Xu‘, ‘[email protected]‘))>>> a[0]                     #a[1]=(2L, ‘Beryl‘, ‘Li‘, ‘[email protected]‘)(1L, ‘Wendy‘, ‘Xu‘, ‘[email protected]‘)>>> a[0][1]                 #a[0][0]=‘1L‘‘Wendy‘>>>

通过这样的方式获取数据库已知信息。取出来都是元组。想取出某列可以如下>>> cur.execute("SELECT * from books_author")3L>>> v=[i[1] for i in cur.fetchall()]    #注意是中括号>>> v[‘Wendy‘, ‘Beryl‘, ‘Billly‘]>>> cur.description((‘id‘, 3, 1, 11, 11, 0, 0), (‘first_name‘, 253, 6, 30, 30, 0, 0), (‘last_name‘, 253, 2, 40, 40, 0, 0), (‘email‘, 253, 17, 75, 75, 0, 0))>>> cur.execute("DESCRIBE books_author;")  #这个蓝色的部分是值,cur.execute到哪里,就执行什么。所以使用前都需要调取游标位置。cur.execute  知道点数据库语言有好处。>>> cur.description((‘Field‘, 253, 10, 64, 64, 0, 0), (‘Type‘, 252, 11, 196605, 196605, 0, 0), (‘Null‘, 253, 2, 3, 3, 0, 0), (‘Key‘, 253, 3, 3, 3, 0, 0), (‘Default‘, 252, 0, 196605, 196605, 0, 1), (‘Extra‘, 253, 14, 30, 30, 0, 0)>>> cur.scroll(0,‘absolute‘)>>> cur.fetchmany(2)((1L, ‘Wendy‘, ‘Xu‘, ‘[email protected]‘), (2L, ‘Beryl‘, ‘Li‘, ‘[email protected]‘))
				
时间: 2024-10-06 09:34:30

Python中的MySQLdb模块的相关文章

python在使用MySQLdb模块时报Can't extract file(s) to egg cacheThe following error occurred while trying to extract file(s) to the Python eggcache的错误。

这个是因为python使用MySQLdb模块与mysql数据库交互时需要一个地方作为cache放置暂存的数据,但是调用python解释器的用户(常常是服务器如apache的www用户)对于cache所指向的位置没有访问权限. 解决方式有很多,这里介绍一个. 创建一个文件夹并给予该文件夹对应用户w的权限(不确定是哪个用户的情况下可以直接给other置以w权限(linux下用户及权限机制自行百度)). 然后在每个python的脚本文件中加入 import osos.environ['PYTHON_E

Python中的random模块,来自于Capricorn的实验室

Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <

python中查看可用模块

1.这种方式的问题是,只列出当前import进上下文的模块. 进入python命令行.输入以下代码: >>>import sys >>>sys.modules 2.在python命令行下输入: >>>help() help>modulespython中查看可用模块,布布扣,bubuko.com

python中动态导入模块

如果导入的模块不存在,Python解释器会报 ImportError 错误: >>> import something Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named something 有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了Strin

Python中的random模块

Python中的random模块 (转载自http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html) Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),

解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下代码 import sys reload(sys) sys.setdefaultencoding('utf-8') 2.确认你ubuntu系统环境下拥有的中文字体文件: 在终端运行命令"fc-list :lang=zh",得到自己系统的中文字体 命令输出如下: /usr/share/fon

(转)Python中的random模块

Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <

转载:python中的copy模块(浅复制和深复制)

主要是介绍python中的copy模块. copy模块包括创建复合对象(包括列表.元组.字典和用户定义对象的实例)的深浅复制的函数. ########copy(x)########创建新的复合对象并通过引用复制x的成员来创建x的浅复制.更加深层次说,它复制了对象,但对于对象中的元素,依然使用引用.对于内置类型,此函数并不经常使用.而是使用诸如list(x), dict(x), set(x)等调用方式来创建x的浅复制,要知道像这样直接使用类型名显然比使用copy()快很多.但是它们达到的效果是一样

Python中的logging模块【转】

基本用法 下面的代码展示了logging最基本的用法. 1 # -*- coding: utf-8 -*- 2 3 import logging 4 import sys 5 6 # 获取logger实例,如果参数为空则返回root logger 7 logger = logging.getLogger("AppName") 8 9 # 指定logger输出格式 10 formatter = logging.Formatter('%(asctime)s %(levelname)-8s: