成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[零基礎(chǔ)學(xué)python]用Python操作數(shù)據(jù)庫(3)

BDEEFE / 2129人閱讀

摘要:用選擇要操作的數(shù)據(jù)庫,然后通過指針就可以操作這個數(shù)據(jù)庫了。這樣就在這個數(shù)據(jù)庫中創(chuàng)建了一個名為的表這是查看表的方式。樹欲靜而風(fēng)不止,小偷在行動。所以,要特別提醒諸位注意。

通過python操作數(shù)據(jù)庫的行為,除了能夠完成前面兩講中的操作之外(當(dāng)然,那是比較常用的),其實(shí)任何對數(shù)據(jù)庫進(jìn)行的操作,都能夠通過python-mysqldb來實(shí)現(xiàn)。

建立數(shù)據(jù)庫

在《用python操作數(shù)據(jù)庫(1)》中,我是通過mysql>寫SQL語句,建立了一個名字叫做qiwsirtest的數(shù)據(jù)庫,然后用下面的方式跟這個數(shù)據(jù)庫連接

>>> import MySQLdb
>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",charset="utf8")

在上面的連接中,參數(shù)db="qiwsirtest"其實(shí)可以省略,如果省略,就是沒有跟任何具體的數(shù)據(jù)庫連接,只是連接了mysql。

>>> import MySQLdb
>>> conn = MySQLdb.connect("localhost","root","123123",port=3306,charset="utf8")

這種連接沒有指定具體數(shù)據(jù)庫,接下來就可以用類似mysql>交互模式下的方式進(jìn)行操作。

>>> conn.select_db("qiwsirtest")
>>> cur = conn.cursor()
>>> cur.execute("select * from users")
7L
>>> cur.fetchall()
((1L, u"qiwsir", u"123123", u"[email protected]"), (2L, u"mypython", u"123456", u"[email protected]"), (3L, u"google", u"111222", u"[email protected]"), (4L, u"facebook", u"222333", u"[email protected]"), (5L, u"github", u"333444", u"[email protected]"), (6L, u"docker", u"444555", u"[email protected]"), (7L, u"u8001u9f50", u"9988", u"[email protected]"))

conn.select_db()選擇要操作的數(shù)據(jù)庫,然后通過指針就可以操作這個數(shù)據(jù)庫了。其它的操作跟前兩講一樣了。

如果不選數(shù)據(jù)庫,而是要新建一個數(shù)據(jù)庫,如何操作?

>>> cur = conn.cursor()
>>> cur.execute("create database newtest")
1L

建立數(shù)據(jù)庫之后,就可以選擇這個數(shù)據(jù)庫,然后在這個數(shù)據(jù)庫中建立一個數(shù)據(jù)表。

>>> cur.execute("create table newusers (id int(2) primary key auto_increment, username varchar(20), age int(2), email text)")
0L

括號里面是引號,引號里面就是創(chuàng)建數(shù)據(jù)表的語句,看官一定是熟悉的。這樣就在newtest這個數(shù)據(jù)庫中創(chuàng)建了一個名為newusers的表

>>> cur.execute("show tables")
1L
>>> cur.fetchall()
((u"newusers",),)

這是查看表的方式。當(dāng)然,看官可以在mysql>交互模式下查看是不是存在這個表。如下:

mysql> use newtest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-------------------+
| Tables_in_newtest |
+-------------------+
| newusers          |
+-------------------+
1 row in set (0.00 sec)

mysql> desc newusers;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(2)      | NO   | PRI | NULL    | auto_increment |
| username | varchar(20) | YES  |     | NULL    |                |
| age      | int(2)      | YES  |     | NULL    |                |
| email    | text        | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

以上就通過python-mysqldb實(shí)現(xiàn)了對數(shù)據(jù)庫和表的建立。

當(dāng)然,能建就能刪除??垂倏梢宰孕袊L試,在這里就不贅述,原理就是在cur.execute()中寫SQL語句。

關(guān)閉一切

當(dāng)進(jìn)行完有關(guān)數(shù)據(jù)操作之后,最后要做的就是關(guān)閉游標(biāo)(指針)和連接。用如下命令實(shí)現(xiàn):

>>> cur.close()
>>> conn.close()

注意關(guān)閉順序,和打開的順序相反。

為什么要關(guān)閉?這個問題有點(diǎn)那個了。你把房子里面都收拾好了,如果離開房子,不關(guān)門嗎?不要以為自己生活在那個理想社會。樹欲靜而風(fēng)不止,小偷在行動。更何況,如果不關(guān)閉,服務(wù)器的內(nèi)容總?cè)切〇|西而沒有釋放,早晚就滿了。所以,必須關(guān)閉。必須的。

關(guān)于亂碼問題

這個問題是編寫web時常常困擾程序員的問題,亂碼的本質(zhì)來自于編碼格式的設(shè)置混亂。所以,要特別提醒諸位注意。在用python-mysqldb的時候,為了放置亂碼,可以做如下統(tǒng)一設(shè)置:

Python文件設(shè)置編碼 utf-8(文件前面加上 #encoding=utf-8)

MySQL數(shù)據(jù)庫charset=utf8(數(shù)據(jù)庫的設(shè)置方法,可以網(wǎng)上搜索)

Python連接MySQL是加上參數(shù) charset=utf8(在前面教程中都這么演示了,很重要)

設(shè)置Python的默認(rèn)編碼為 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的配置文件設(shè)置也必須配置成utf8 設(shè)置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都設(shè)置默認(rèn)的字符集(通常在/etc/mysql/my.cnf):

[client] default-character-set = utf8
[mysqld] default-character-set = utf8

windows操作系統(tǒng)請看官自己google。


在我的網(wǎng)站上,有完整的本教程目錄,邀請您光臨,并不吝賜教: www.itdiffer.com

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37428.html

相關(guān)文章

  • [基礎(chǔ)學(xué)python]有容乃大的list(1)

    摘要:定義在中,用方括號表示一個,在方括號里面,可以是,也可以是類型的數(shù)據(jù),甚至也能夠是這種布爾值。前面在對進(jìn)行操作的時候,有一些內(nèi)置函數(shù),比如,這是去掉左右空格的內(nèi)置函數(shù),也是的方法。 前面的學(xué)習(xí)中,我們已經(jīng)知道了兩種python的數(shù)據(jù)類型:int和str。再強(qiáng)調(diào)一下對數(shù)據(jù)類型的理解,這個世界是由數(shù)據(jù)組成的,數(shù)據(jù)可能是數(shù)字(注意,別搞混了,數(shù)字和數(shù)據(jù)是有區(qū)別的),也可能是文字、或者是聲音、...

    lewif 評論0 收藏0
  • [基礎(chǔ)學(xué)Python]正規(guī)地說一句話

    摘要:語句,遍列列表字符串字典集合等迭代器,依次處理迭代器中的每個元素。與配合使用處理在程序運(yùn)行中出現(xiàn)的異常情況。表示此行為空,不運(yùn)行任何操作。在迭代器函數(shù)內(nèi)使用,用于返回一個元素。恭請到上瀏覽及時更新的教程零基礎(chǔ)學(xué) 小孩子剛剛開始學(xué)說話的時候,常常是一個字一個字地開始學(xué),比如學(xué)說餃子,對他/她來講,似乎有點(diǎn)難度,大人也聰明,于是就簡化了,用餃餃來代替,其實(shí)就是讓孩子學(xué)會一個字就能表達(dá)。當(dāng)然...

    Freeman 評論0 收藏0
  • 基礎(chǔ)如何學(xué)爬蟲技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0
  • [基礎(chǔ)學(xué)python]print能干的事情

    摘要:在干事情之前,先看看這個東東。行文到此,提醒列位,如果用的,請用,要加個括號。這樣的輸出算是對前面輸出的擴(kuò)展了。據(jù)說,會逐漸逐漸取代前面的。恭請列為到我的上及時更新的內(nèi)容零基礎(chǔ)學(xué) print的一些基本用法,在前面的講述中也涉及一些,本講是在復(fù)習(xí)的基礎(chǔ)上,盡量再多點(diǎn)內(nèi)容。 eval() 在print干事情之前,先看看這個東東。不是沒有用,因為說不定某些時候要用到。 >>> help...

    kk_miles 評論0 收藏0
  • [基礎(chǔ)學(xué)Python]dict()的操作方法

    摘要:還有別的方法得到鍵值嗎有一般不是只有一個方法實(shí)現(xiàn)某個操作的。刪除鍵值對的方法有兩個,但是兩者有一點(diǎn)區(qū)別,根據(jù)刪除相應(yīng)的鍵值對,并返回該值沒有返回值,如果刪除鍵不存在,返回錯誤用可以把合并到中。 dict的很多方法跟list有類似的地方,下面一一道來,并且會跟list做一個對比 嵌套 嵌套在list中也存在,就是元素是list,在dict中,也有類似的樣式: >>> a_list ...

    vpants 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<