欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

python數(shù)據(jù)庫適配器(一)

python數(shù)據(jù)庫適配器(一)

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比平桂網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式平桂網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋平桂地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

如上圖是應(yīng)用程序與關(guān)系型數(shù)據(jù)庫的多層通信,第一個(gè)框一般是C/C++程序,后兩個(gè)框是python程序。在python應(yīng)用中,都是使用數(shù)據(jù)庫適配器去訪問數(shù)據(jù)庫的,不同數(shù)據(jù)庫有不同的適配器,但是都有一套標(biāo)準(zhǔn),具體屬性如下:

python的DB-API模塊屬性                                                                                           

<apilevel>

該字符串(注意,不是浮點(diǎn)型)指明了模塊需要兼容的DB-API 最高版本,比如,1.0、2.0 等。該屬性的默認(rèn)值是1.0。

<threadsafety>

這是一個(gè)整型值,可選值如下。
? 0:不支持線程安全。線程間不能共享模塊。
? 1:最小化線程安全支持:線程間可以共享模塊,但是不能共享連接。
? 2:適度的線程安全支持:線程間可以共享模塊和連接,但是不能共享游標(biāo)。
? 3:完整的線程安全支持:線程間可以共享模塊、連接和游標(biāo)。

<paramstyle參數(shù)風(fēng)格>

參數(shù)風(fēng)格     描 述                             示 例
numeric     數(shù)值位置風(fēng)格                    WHERE name=:1
named       命名風(fēng)格                        WHERE name=:name
pyformat    Python 字典printf()格式轉(zhuǎn)換     WHERE name=%(name)s
qmark       問號風(fēng)格                        WHERE name=?
format      ANSIC 的printf()格式轉(zhuǎn)換WHERE   name=%s

<connect()函數(shù)屬性>

參 數(shù)             描 述
user            用戶名
password        密碼
host            主機(jī)名
database/db     數(shù)據(jù)庫名
dsn             數(shù)據(jù)源名
MySQLdb適配器不支持dsn,connect()函數(shù)調(diào)用參數(shù)的方法如:MySQLdb.connect(host='172.16.1.238',db='school',user='root',password='******')

<異常>

異 常                   描 述
Warning                 警告異?;?Error                   錯(cuò)誤異?;?    InterfaceError          數(shù)據(jù)庫接口(非數(shù)據(jù)庫)錯(cuò)誤
    DatabaseError           數(shù)據(jù)庫錯(cuò)誤
    DataError               處理數(shù)據(jù)時(shí)出現(xiàn)問題
    OperationlError         數(shù)據(jù)庫操作執(zhí)行期間出現(xiàn)錯(cuò)誤
    IntegrityError          數(shù)據(jù)庫關(guān)系完整性錯(cuò)誤
    InternalError           數(shù)據(jù)庫內(nèi)部錯(cuò)誤
    ProgrammingError SQL    命令執(zhí)行失敗
    NotSupportedError       出現(xiàn)不支持的操作

python的DB-API模塊常見對象                                                                                                                                                                                                                                                 

使用MySQLdb模塊操作mysql數(shù)據(jù)庫的一個(gè)簡單例子:

#-*- coding:utf-8 -*-
#AUTH:FJC
import MySQLdb
from _mysql_exceptions import *
#連接數(shù)據(jù)庫,返回MySQLdb.connections.Connection對象
my_conn = MySQLdb.connect(host='172.16.1.238',db='school',user='root',password='123456')
#獲取游標(biāo),返回MySQLdb.cursors.Cursor對象
my_cur = my_conn.cursor()
try:
    #執(zhí)行數(shù)據(jù)庫原生語句
    my_exec = my_cur.execute('select * from school.boys;')
    #返回查詢結(jié)果的前兩行
    print(my_cur.fetchmany(2))
    my_cur.execute('insert into school.boys values(4,"zhaoliu",20);')
    my_conn.commit()
except ProgrammingError:
    print("SQL語法錯(cuò)誤!")
finally:
    my_conn.close()

與數(shù)據(jù)庫交互的過程可以簡單概括為(當(dāng)然不止這些):

調(diào)用connect()方法返回一個(gè)Connect對象-->調(diào)用Connect對象的cursor()方法返回一個(gè)游標(biāo)對象-->調(diào)用游標(biāo)對象的execute*()和fetch*()方法等方法向數(shù)據(jù)庫發(fā)送請求-->調(diào)用Connect對象的commit()方法提交事務(wù)-->調(diào)用Connect對象的close()方法關(guān)閉數(shù)據(jù)庫連接

常用的對象如下:

Connect對象 <class 'MySQLdb.connections.Connection'>

Connect對象方法包括:
方 法 名                                     描 述
close ()                                    關(guān)閉數(shù)據(jù)庫連接
commit()                                    提交當(dāng)前事務(wù),如果數(shù)據(jù)庫不支持事務(wù)或開啟了自動提交,該方法將無法使用
rollback()                                  取消當(dāng)前事務(wù),同樣如果數(shù)據(jù)庫不支持事務(wù),該方法將無法使用
cursor()                                    使用該連接創(chuàng)建(并返回)一個(gè)游標(biāo)或類游標(biāo)的對象
errorhandler (cxn, cur, errcls, errval )    作為給定連接的游標(biāo)的處理程序

Cursor對象 <class 'MySQLdb.cursors.Cursor'>

Python DB-API 游標(biāo)對象總能提供游標(biāo)的功能,即使是那些不支持游標(biāo)的數(shù)據(jù)庫。當(dāng)游標(biāo)創(chuàng)建好后,就可以執(zhí)行查詢或命令(或多個(gè)查詢和命令),并從結(jié)果集中取回一行或多行結(jié)果。

Cursor 對象的數(shù)據(jù)屬性和方法包括:
對 象 屬 性                          描 述
arraysize                           使用 fetchmany()方法時(shí),一次取出的結(jié)果行數(shù),默認(rèn)為1
connection                          創(chuàng)建此游標(biāo)的連接(可選)
description                         返回游標(biāo)活動狀態(tài)(7 項(xiàng)元組):(name, type_code, display_size, internal_ size,precision, scale, null_ok),只有name 和type_code 是必需的
lastrowid                           上次修改行的行ID(可選;如果不支持行ID,則返回None)
rowcount                            上次 execute*()方法處理或影響的行數(shù)
callproc( func [,args])             調(diào)用存儲過程
close()                             關(guān)閉游標(biāo)
execute (op[,args])                 執(zhí)行數(shù)據(jù)庫查詢或命令
executemany (op,args)              類似execute()和map()的結(jié)合,為給定的所有參數(shù)準(zhǔn)備并執(zhí)行數(shù)據(jù)庫查詢或命令
fetchone()                          獲取查詢結(jié)果的第一行
fetchmany([size=cursor.arraysize])  獲取查詢結(jié)果的下面size 行,例如:my_cur.fetchmany(2)返回查詢結(jié)果的前兩行
fetchall()                          獲取查詢結(jié)果的所有(剩余)行
__iter__()                          為游標(biāo)創(chuàng)建迭代器對象(可選,參考next())
messages                            游標(biāo)執(zhí)行后從數(shù)據(jù)庫中獲得的消息列表(元組集合,可選)
next ()                             被迭代器用于獲取查詢結(jié)果的下一行(可選,類似fetchone(),參考__iter__())
nextset()                           移動到下一個(gè)結(jié)果集合(如果支持)
rownumber                           當(dāng)前結(jié)果集中游標(biāo)的索引(以行為單位,從0 開始,可選)
setinputsizes(sizes)                設(shè)置允許的最大輸入大?。ū仨氂校菍?shí)現(xiàn)是可選的)
setoutputsize(size[,col])           設(shè)置大列獲取的最大緩沖區(qū)大?。ū仨氂校菍?shí)現(xiàn)是可選的)

python字符串到數(shù)據(jù)庫特殊對象轉(zhuǎn)換常用的類型對象和構(gòu)造函數(shù):

類 型 對 象                                 描 述
Date (yr, mo, dy)                           日期值對象
Time (hr, min, sec)                         時(shí)間值對象
Timestamp (yr, mo, dy, hr, min, sec)        時(shí)間戳值對象
DateFromTicks (ticks)                       日期對象,給出從新紀(jì)元時(shí)間(1970 年1 月1 日00:00:00 UTC)以來的秒數(shù)
TimeFromTicks (ticks)                       時(shí)間對象,給出從新紀(jì)元時(shí)間(1970 年1 月1 日00:00:00 UTC)以來的秒數(shù)
TimestampFromTicks (ticks)                  時(shí)間戳對象,給出從新紀(jì)元時(shí)間(1970 年1 月1 日00:00:00 UTC)以來的秒數(shù)
Binary (string)                             對應(yīng)二進(jìn)制(長)字符串對象
STRING                                      表示基于字符串列的對象,比如VARCHAR
BINARY                                      表示(長)二進(jìn)制列的對象,比如RAW、BLOB
NUMBER                                      表示數(shù)值列的對象
DATETIME                                    表示日期/時(shí)間列的對象
ROWID                                       表示“行ID”列的對象


本文名稱:python數(shù)據(jù)庫適配器(一)
URL網(wǎng)址:http://aaarwkj.com/article6/jpohog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站內(nèi)鏈品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
久久久av在线免费观看| 国产大片在线观看一区二区| 97久久精品人妻一区二区三区| 老司机精品成人免费视频| 国产午夜草莓视频在线观看| 日本不卡一区二区三区四| 四虎在线经典视频播放| 亚洲欧美二区中文字幕| 五月婷婷av综合激情| 亚洲精品日韩av专区| 91啪在线观看91色| 日本在线一区二区三区| 亚洲中文有码一区二区| 亚洲欧美综合日韩综合久久久| 新午夜福利片在线观看| 一区二区亚洲免费的视频| 国产精品亚洲在线视频| 日韩精品在线观看电影| 日韩一区二区人妻在线| 亚洲一区二区三区日韩欧美| 97成人在线视频免费播放| 日本色网一区二区三区四区| 国产一区二区三区的网站| 人妻内射一区二区在线视| 久久热在线观看免费高清| 久久综合色爱综合欧美| 久久99精品国产99久久无| 日韩激情中文字幕一区二区三区| 国产日产精品久久一区| 午夜欧美日韩精品久久久| 国产黄片免费看久久久| 蜜臀av在线国产一区 | 爽妇网亚洲一区二区三区| 操女逼无遮挡国产av| 91久久精品中文字幕| 国内精品亚洲成av人片麻豆| av毛片在线观看地址| 青青草原在线视频伊人| 国产精品一区二区久久蜜桃麻豆| 日日夜夜添添精品视频| 国产免费成人在线视频|