亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python連接SQLServer2000的方法詳解

 更新時(shí)間:2017年04月19日 10:08:33   作者:不得閑  
這篇文章主要介紹了Python連接SQLServer2000的方法,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)數(shù)據(jù)庫連接過程中所遇到的常見問題與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python連接SQLServer2000的方法。分享給大家供大家參考,具體如下:

http://pymssql.sourceforge.net/  介紹PYTHON 連接MSSQL的好地址的哦!

Python好的一個(gè)方法就是能夠在網(wǎng)上找到很多現(xiàn)成的模塊然后直接下載拿過來用就可以了。具體快速開發(fā)的一個(gè)原因也就是這個(gè)了。現(xiàn)在就是主要來研究一個(gè)pymssql這個(gè)模塊的操作功能了!

可以安裝之后直接查詢幫助文檔進(jìn)行查看到這個(gè)模塊的一些功能幫助文檔。

1.一個(gè)解決亂碼問題的方法:

s.decode('gbk', 'ignore')

比如,若要將某個(gè)String對(duì)象s從gbk內(nèi)碼轉(zhuǎn)換為UTF-8,可以如下操作

s.decode('gbk').encode('utf-8')

可是,在實(shí)際開發(fā)中,我發(fā)現(xiàn),這種辦法經(jīng)常會(huì)出現(xiàn)異常:

UnicodeDecodeError: 'gbk' codec can't decode bytes in position 30664-30665:    illegal multibyte sequence

這是因?yàn)橛龅搅朔欠ㄗ址绕涫窃谀承┯肅/C++編寫的程序中,全角空格往往有多種不同的實(shí)現(xiàn)方式,比如/xa3/xa0,或者/xa4/x57,這 些字符,看起來都是全角空格,但它們并不是“合法”的全角空格(真正的全角空格是/xa1/xa1),因此在轉(zhuǎn)碼的過程中出現(xiàn)了異常。

幸運(yùn)的是,tiny找到了完美的解決辦法(我因此被批評(píng)看文檔不仔細(xì),汗啊……)

s.decode('gbk', 'ignore').encode('utf-8')

因?yàn)閐ecode的函數(shù)原型是decode([encoding], [errors='strict']),可以用第二個(gè)參數(shù)控制錯(cuò)誤處理的策略,默認(rèn)的參數(shù)就是strict,代表遇到非法字符時(shí)拋出異常;

  如果設(shè)置為ignore,則會(huì)忽略非法字符;
  如果設(shè)置為replace,則會(huì)用?取代非法字符;
  如果設(shè)置為xmlcharrefreplace,則使用XML的字符引用。

這個(gè)方法幫助確實(shí) 是相當(dāng)大的哦。對(duì)于那種在數(shù)據(jù)庫中存儲(chǔ)了全角與半角的非法字符的問題可以這樣來進(jìn)行解決處理的哦!

字符編碼問題永遠(yuǎn)是一個(gè)讓人頭疼的問題哈哈!

2.http://www.python.org/dev/peps/pep-0249/

上面提供了Python-DBAPI的常用操作功能。

總結(jié)出來相關(guān)的API操作方法:

3.總結(jié)出來Python連接數(shù)據(jù)庫的一般程序過程是這樣來寫的:

第一步:導(dǎo)入相關(guān)的模塊

其中MYSQL:

import MySQLdb

其中MSSQL:

import pymssql

第二步:打開連接

其中MYSQL:

conn = MySQLdb.connect(self.dbhost,self.dbuser,self.dbpasswd,self.database)

其中MSSQL:

conn = pymssql.connect(host=self.dbhost,user=self.dbuser,password=self.dbpasswd,database=self.database)

[通過本身的函數(shù)原型來定義出來這個(gè)方法的]

第三步:連接完了之后就要開始創(chuàng)建一個(gè)cursor了。通過這個(gè)對(duì)象來對(duì)數(shù)據(jù)庫發(fā)送一個(gè)請(qǐng)求操作。

代碼:

curs = conn.cursor()

相當(dāng)于JAVA中的Statement對(duì)象一樣的。通過語句來進(jìn)行提交SQL命令的

第四步:開始發(fā)送SQL命令到數(shù)據(jù)庫服務(wù)器了,可以這樣來做

curs.execute(SQL)

例如:

curs.execute("select * from test")

其中的SQL命令可以是任意的SQL語句 可以是執(zhí)行INSERT 操作或DELETE操作也可以是SELECT操作的

要注意到 執(zhí)行完了之后要進(jìn)行commit()提交一次的。

例如:

cursor.execute("insert into test(id) values(1)")

如果是執(zhí)行了SELECT操作的話就要進(jìn)行第五步操作了:

第五步:

curs.execute("select * from test")
rows = curs.fetchall()

其中的fetchall()只是我們的cursor對(duì)象的一個(gè)方法而已的。

現(xiàn)在就可以提取出來相關(guān)信息了

for i in range(len(rows)):
  print "Row",i,"name",rows[i][0],"value",rows[i][1]

看我寫的代碼:

def test(self):
    conn = self.connect()
    sql="select * from bbs where id<20"
    curs = conn.cursor()  #得到一個(gè)游標(biāo)對(duì)象
    curs.execute(sql)    #執(zhí)行一個(gè)SQL語句
    rows=curs.fetchall()  #得到全部的查詢結(jié)果集
    for i in range(len(rows)): #
      print "Row",i,"name",rows[i][3],"value",rows[i][4]
    conn.close()

我明白了:通過這樣的方法的話  得到的一行記錄其實(shí)是一個(gè)元組的數(shù)據(jù)結(jié)構(gòu)的。

要取其中的一個(gè)可以用一個(gè)類似兩維數(shù)組的方法進(jìn)行查詢出來的。

rows[1][0]:表示第一條記錄中的第一個(gè)位置的值的。

然后再來看看 將其從數(shù)據(jù)庫中提取出來之后進(jìn)行編碼處理與解碼處理

for i in range(len(rows)):
      print rows[i][4].decode('gb2312', 'ignore').encode('gb2312')

以后操作數(shù)據(jù)庫的話就可以直接這樣來寫代碼的了!

http://pymssql.sourceforge.net/userguide.html 有詳細(xì)的幫助說明文檔的

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python+Selenium實(shí)現(xiàn)在Geoserver批量發(fā)布Mongo矢量數(shù)據(jù)

    Python+Selenium實(shí)現(xiàn)在Geoserver批量發(fā)布Mongo矢量數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了如何利用Python+Selenium實(shí)現(xiàn)在 Geoserver批量發(fā)布來自Mongo中的矢量數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-07-07
  • Python程序中使用SQLAlchemy時(shí)出現(xiàn)亂碼的解決方案

    Python程序中使用SQLAlchemy時(shí)出現(xiàn)亂碼的解決方案

    這篇文章主要介紹了Python程序中使用SQLAlchemy時(shí)出現(xiàn)亂碼的解決方案,SQLAlchemy是Python常用的操作MySQL數(shù)據(jù)庫的工具,需要的朋友可以參考下
    2015-04-04
  • python兒童學(xué)游戲編程知識(shí)點(diǎn)總結(jié)

    python兒童學(xué)游戲編程知識(shí)點(diǎn)總結(jié)

    在本文里小編給大家整理了關(guān)于python兒童學(xué)游戲編程知識(shí)點(diǎn)以及內(nèi)容總結(jié),需要的朋友們參考學(xué)習(xí)下。
    2019-06-06
  • Python實(shí)例詳解遞歸算法

    Python實(shí)例詳解遞歸算法

    遞歸(英語:Recursion),又譯為遞回,在數(shù)學(xué)與計(jì)算機(jī)科學(xué)中,是指在函數(shù)的定義中使用函數(shù)自身的方法。遞歸一詞還較常用于描述以自相似方法重復(fù)事物的過程。本文將詳細(xì)為大家介紹Python中的遞歸算法,需要的可以參考一下
    2022-03-03
  • Python實(shí)現(xiàn)刪除某列中含有空值的行的示例代碼

    Python實(shí)現(xiàn)刪除某列中含有空值的行的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)刪除某列中含有空值的行的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 解決pytorch 保存模型遇到的問題

    解決pytorch 保存模型遇到的問題

    這篇文章主要介紹了解決pytorch 保存模型遇到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python常用算法學(xué)習(xí)基礎(chǔ)教程

    Python常用算法學(xué)習(xí)基礎(chǔ)教程

    這篇文章主要學(xué)習(xí)Python常用算法,Python常用排序算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一
    2017-04-04
  • 對(duì)python的bytes類型數(shù)據(jù)split分割切片方法

    對(duì)python的bytes類型數(shù)據(jù)split分割切片方法

    今天小編就為大家分享一篇對(duì)python的bytes類型數(shù)據(jù)split分割切片方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python實(shí)現(xiàn)的漢諾塔算法示例

    python實(shí)現(xiàn)的漢諾塔算法示例

    這篇文章主要介紹了python實(shí)現(xiàn)的漢諾塔算法,結(jié)合實(shí)例形式分析了漢諾塔算法的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • Python?OpenCV實(shí)現(xiàn)圖形檢測(cè)示例詳解

    Python?OpenCV實(shí)現(xiàn)圖形檢測(cè)示例詳解

    圖形檢測(cè)在計(jì)算機(jī)視覺開發(fā)中是一項(xiàng)非常重要的操作,算法通過對(duì)圖像的檢測(cè),分析出圖像中可能存在哪些形狀。本文詳細(xì)介紹了Python+OpenCV如何實(shí)現(xiàn)圖形檢測(cè),感興趣的可以了解一下
    2022-04-04

最新評(píng)論