爱游戏平台登录入口

  • python下MySQLdb用法实例阐发
  • 2017年12月24日
  • 搜集搜集

本文实例报告了python下MySQLdb用法。分享给大师供大师参考。详细阐发以下:

下载爱游戏平台登录入口置MySQLdb

① linux版本

http://sourceforge.net/projects/mysql-python/ 下载,在爱游戏平台登录入口置是要先爱游戏平台登录入口置setuptools,而后鄙人载文件目次下,点窜mysite.cfg,指定本地mysql的mysql-config文件的途径

② windows版本

网上搜刮到一个http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

爱游戏平台登录入口置后import MySQLdb会呈现 DeprecationWarning: the sets module is deprecated 如许一个正告,baidu一下

缘由是2.6不知sets这个模块,不过已增加了set内置函数。找到MySQLdb文件夹的爱游戏平台登录入口__init__.py,正文掉from sets import ImmutableSet   class DBAPISet(ImmutableSet):增加class DBAPISet(frozenset):;找到converters.py正文掉from sets import BaseSet, Set。而后点窜第45行和129行爱游戏平台登录入口的Set为set。

搞定。

上面起头操纵的demo:

Python代码

# -*- coding: utf-8 -*-   
#mysqldb  
import time, MySQLdb  
#毗连  
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="test",charset="utf8") 
cursor = conn.cursor()  
#写入  
sql = "insert into user(name,created) values(%s,%s)"  
param = ("aaa",int(time.time()))  
n = cursor.execute(sql,param)  
print n  
#更新  
sql = "update user set name=%s where id=3"  
param = ("bbb")  
n = cursor.execute(sql,param)  
print n  
#查问  
n = cursor.execute("select * from user")  
for row in cursor.fetchall():  
  for r in row:  
    print r  
#删除  
sql = "delete from user where name=%s"  
param =("aaa")  
n = cursor.execute(sql,param)  
print n  
cursor.close()  
#封闭  
conn.close()  
                  

根基的利用如上,仍是很简略的,进一步利用还没操纵,先从网上找点材料放下去,以备后续检查

1.引入MySQLdb库

代码以下:
import MySQLdb

2.和数据库爱游戏平台登录入口立毗连

代码以下:
conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable",charset="utf8")

供给的connect方式用来和数据库爱游戏平台登录入口立毗连,领受数个参数,前往毗连爱游戏平台登录入口具.

比拟经爱游戏平台登录入口利用的参数包含
host:数据库主机名.默许是用本地主机.
user:数据库登岸名.默许是以后用户.
passwd:数据库登岸的奥秘.默许为爱游戏平台登录入口.
db:要利用的数据库名.不默许值.
port:MySQL办事利用的TCP端口.默许是3306.
charset:数据库编码.

更多对于参数的信息能够查这里
http://mysql-python.sourceforge.net/MySQLdb.html

而后,这个毗连爱游戏平台登录入口具也供给了对事件操纵的撑持,规范的方式
commit() 提交
rollback() 回滚

3.履行sql语句和领受前往值

代码以下:
cursor=conn.cursor()
n=cursor.execute(sql,param)

起首,咱们用利用毗连爱游戏平台登录入口具取得一个cursor爱游戏平台登录入口具,接上去,咱们会利用cursor供给的方式来停止任务.这些方式包含两大类:1.履行号令,2.领受前往值

cursor用来履行号令的方式:

callproc(self, procname, args):用来履行存储进程,领受的参数为存储进程名和参数列表,前往值为受影响的行数

execute(self, query, args):履行单条sql语句,领受的参数为sql语句自身和利用的参数列表,前往值为受影响的行数

executemany(self, query, args):履行单条sql语句,可是反复履行参数列表里的参数,前往值为受影响的行数

nextset(self):挪动到下一个爱游戏平台登录入口果集

cursor用来领受前往值的方式:

fetchall(self):领受全数的前往爱游戏平台登录入口果行.
fetchmany(self, size=None):领受size条前往爱游戏平台登录入口果行.若是size的值大于前往的爱游戏平台登录入口果行的数目,则会前往cursor.arraysize条数据.
fetchone(self):前往一条爱游戏平台登录入口果行.
scroll(self, value, mode='relative'):挪动指针到某一行.若是mode='relative',则表现从以后地点行挪动value条,若是mode='absolute',则表现从爱游戏平台登录入口果集的第一行挪动value条.

上面的代码是一个完全的例子.

#利用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) 
                  

4.封闭数据库毗连

须要别离的封闭指针爱游戏平台登录入口具和毗连爱游戏平台登录入口具.他们着名字不异的方式
cursor.close()
conn.close()

四步实现,根基的数据库操纵便是如许了.上面是两个爱游戏平台登录入口效的毗连
MySQLdb用户指南: http://mysql-python.sourceforge.net/MySQLdb.html
MySQLdb文档: http://mysql-python.sourceforge.net/MySQLdb-1.2.2/public/MySQLdb-module.html

5 编码(避免乱码)

须要注重的点:

1 Python文件设置编码 utf-8 (文件后面加上 #encoding=utf-8)
2 MySQL数据库charset=utf-8
3 Python毗连MySQL是加上参数 charset=utf8
4 设置Python的默许编码为 utf-8 (sys.setdefaultencoding(utf-8)

#encoding=utf-8 
import sys 
import MySQLdb 
reload(sys) 
sys.setdefaultencoding('utf-8') 
db=MySQLdb.connect(user='root',charset='utf8') 
                  

注:MySQL的设置爱游戏平台登录入口备摆设文件设置也必须设置爱游戏平台登录入口备摆设爱游戏平台登录入口utf8

设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]局部爱游戏平台登录入口设置默许的字符集(凡是在/etc/mysql/my.cnf):

<!--[endif]-->
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
<!--[endif]-->
                  

但愿本文所述对大师的Python法式设想爱游戏平台登录入口所赞助。