日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Python編程語(yǔ)言操作MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)演習(xí)

以下的文章主要介紹的是Python編程語(yǔ)言操作MySQL數(shù)據(jù)庫(kù)的實(shí)際操作流程,以前發(fā)的文章誤把mssql錯(cuò)當(dāng)成mysql。我們大家都知道m(xù)ssql是微軟的SQL Server數(shù)據(jù)庫(kù)服務(wù)器。下面討論下Python操縱數(shù)據(jù)庫(kù)和Django操縱數(shù)據(jù)庫(kù)的一些小知識(shí)。

創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供新平網(wǎng)站建設(shè)、新平做網(wǎng)站、新平網(wǎng)站設(shè)計(jì)、新平網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、新平企業(yè)網(wǎng)站模板建站服務(wù),10多年新平做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

python 操作數(shù)據(jù)庫(kù),要安裝一個(gè)Python和數(shù)據(jù)庫(kù)交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我們就可以使用MySQLdb這個(gè)包進(jìn)行數(shù)據(jù)庫(kù)操作了。

操作MySQL步驟如下:

1、建立數(shù)據(jù)庫(kù)連接

import MySQLdb

conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")

cursor=conn.cursor()

2、執(zhí)行數(shù)據(jù)庫(kù)操作

n=cursor.execute(sql,param)

我們要使用連接對(duì)象獲得一個(gè)cursor對(duì)象,接下來(lái),我們會(huì)使用cursor提供的方法來(lái)進(jìn)行工作.

這些方法包括兩大類(lèi):1.執(zhí)行命令,2.接收返回值

cursor用來(lái)執(zhí)行命令的方法:

callproc(self, procname, args):用來(lái)執(zhí)行存儲(chǔ)過(guò)程,接收的參數(shù)為存儲(chǔ)過(guò)程名和參數(shù)列表,返回值為受影響的行數(shù)

execute(self, query, args):執(zhí)行單條sql語(yǔ)句,接收的參數(shù)為sql語(yǔ)句本身和使用的參數(shù)列表,返回值為受影響的行數(shù)

executemany(self, query, args):執(zhí)行單挑sql語(yǔ)句,但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù)

nextset(self):移動(dòng)到下一個(gè)結(jié)果集

cursor用來(lái)接收返回值的方法:

fetchall(self):接收全部的返回結(jié)果行.

fetchmany(self, size=None):接收size條返回結(jié)果行.如果size的值大于返回的結(jié)果行的數(shù)量,則會(huì)返回cursor.arraysize條數(shù)據(jù).

fetchone(self):返回一條結(jié)果行.

scroll(self, value, mode='relative'):移動(dòng)指針到某一行.如果mode='relative',則表示從當(dāng)前所在行移動(dòng)value條,如果mode='absolute',則表示從結(jié)果集的*** 行移動(dòng)value條.

下面的代碼是一個(gè)完整的例子.

#使用sql語(yǔ)句,這里要接收的參數(shù)都用%s占位符.要注意的是,無(wú)論你要插入的數(shù)據(jù)是什么類(lèi)型,占位符永遠(yuǎn)都要用%s

sql="insert into cdinfo values(%s,%s,%s,%s,%s)"

#param應(yīng)該為tuple或者list

param=(title,singer,imgurl,url,alpha)

#執(zhí)行,如果成功,n的值為1

n=cursor.execute(sql,param)

#再來(lái)執(zhí)行一個(gè)查詢(xún)的操作MySQL

cursor.execute("select * from cdinfo")

#我們使用了fetchall這個(gè)方法.這樣,cds里保存的將會(huì)是查詢(xún)返回的全部結(jié)果.每條結(jié)果都是一個(gè)tuple類(lèi)型的數(shù)據(jù),這些tuple組成了一個(gè)tuple

cds=cursor.fetchall()

#因?yàn)槭莟uple,所以可以這樣使用結(jié)果集

print cds[0][3]

#或者直接顯示出來(lái),看看結(jié)果集的真實(shí)樣子

print cds

#如果需要批量的插入數(shù)據(jù),就這樣做

sql="insert into cdinfo values(0,%s,%s,%s,%s,%s)"

#每個(gè)值的集合為一個(gè)tuple,整個(gè)參數(shù)集組成一個(gè)tuple,或者list

param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))

#使用executemany方法來(lái)批量的插入數(shù)據(jù).這真是一個(gè)很酷的方法!

n=cursor.executemany(sql,param)

需要注意的是(或者說(shuō)是我感到奇怪的是),在執(zhí)行完插入或刪除或修改操作MySQL后,需要調(diào)用一下conn.commit()方法進(jìn)行提交.這樣,數(shù)據(jù)才會(huì)真正保 存在數(shù)據(jù)庫(kù)中.我不清楚是否是我的mysql設(shè)置問(wèn)題,總之,今天我在一開(kāi)始使用的時(shí)候,如果不用commit,那數(shù)據(jù)就不會(huì)保留在數(shù)據(jù)庫(kù)中,但是,數(shù)據(jù) 確實(shí)在數(shù)據(jù)庫(kù)呆過(guò).因?yàn)樽詣?dòng)編號(hào)進(jìn)行了累積,而且返回的受影響的行數(shù)并不為0.

3.關(guān)閉數(shù)據(jù)庫(kù)連接

需要分別的關(guān)閉指針對(duì)象和連接對(duì)象.他們有名字相同的方法

cursor.close()

conn.close()

Django操作數(shù)據(jù)庫(kù)

django是一個(gè)出色的用于python的web框架。django連接有操作MySQL數(shù)據(jù)庫(kù)的api,使用起來(lái)十分簡(jiǎn)潔。我們?cè)趕ettings.py中配置好所要連接的數(shù)據(jù)庫(kù),然后在modules、view、urls中分別寫(xiě)好業(yè)務(wù)邏輯。


本文題目:Python編程語(yǔ)言操作MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)演習(xí)
本文URL:http://m.5511xx.com/article/cdojchj.html