<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                通過python操作數據庫的行為,除了能夠完成前面兩講中的操作之外(當然,那是比較常用的),其實任何對數據庫進行的操作,都能夠通過python-mysqldb來實現。 ## 建立數據庫 在[《用python操作數據庫(1)》](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/303.md)中,我是通過`mysql>`寫SQL語句,建立了一個名字叫做qiwsirtest的數據庫,然后用下面的方式跟這個數據庫連接 ~~~ >>> import MySQLdb >>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",charset="utf8") ~~~ 在上面的連接中,參數`db="qiwsirtest"`其實可以省略,如果省略,就是沒有跟任何具體的數據庫連接,只是連接了mysql。 ~~~ >>> import MySQLdb >>> conn = MySQLdb.connect("localhost","root","123123",port=3306,charset="utf8") ~~~ 這種連接沒有指定具體數據庫,接下來就可以用類似`mysql>`交互模式下的方式進行操作。 ~~~ >>> conn.select_db("qiwsirtest") >>> cur = conn.cursor() >>> cur.execute("select * from users") 7L >>> cur.fetchall() ((1L, u'qiwsir', u'123123', u'qiwsir@gmail.com'), (2L, u'mypython', u'123456', u'python@gmail.com'), (3L, u'google', u'111222', u'g@gmail.com'), (4L, u'facebook', u'222333', u'f@face.book'), (5L, u'github', u'333444', u'git@hub.com'), (6L, u'docker', u'444555', u'doc@ker.com'), (7L, u'\u8001\u9f50', u'9988', u'qiwsir@gmail.com')) ~~~ 用`conn.select_db()`選擇要操作的數據庫,然后通過指針就可以操作這個數據庫了。其它的操作跟前兩講一樣了。 如果不選數據庫,而是要新建一個數據庫,如何操作? ~~~ >>> cur = conn.cursor() >>> cur.execute("create database newtest") 1L ~~~ 建立數據庫之后,就可以選擇這個數據庫,然后在這個數據庫中建立一個數據表。 ~~~ >>> cur.execute("create table newusers (id int(2) primary key auto_increment, username varchar(20), age int(2), email text)") 0L ~~~ 括號里面是引號,引號里面就是創建數據表的語句,看官一定是熟悉的。這樣就在newtest這個數據庫中創建了一個名為newusers的表 ~~~ >>> cur.execute("show tables") 1L >>> cur.fetchall() ((u'newusers',),) ~~~ 這是查看表的方式。當然,看官可以在`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實現了對數據庫和表的建立。 當然,能建就能刪除。看官可以自行嘗試,在這里就不贅述,原理就是在`cur.execute()`中寫SQL語句。 ## 關閉一切 當進行完有關數據操作之后,最后要做的就是關閉游標(指針)和連接。用如下命令實現: ~~~ >>> cur.close() >>> conn.close() ~~~ 注意關閉順序,和打開的順序相反。 為什么要關閉?這個問題有點那個了。你把房子里面都收拾好了,如果離開房子,不關門嗎?不要以為自己生活在那個理想社會。樹欲靜而風不止,小偷在行動。更何況,如果不關閉,服務器的內容總塞著那些東西而沒有釋放,早晚就滿了。所以,必須關閉。必須的。 ## 關于亂碼問題 這個問題是編寫web時常常困擾程序員的問題,亂碼的本質來自于編碼格式的設置混亂。所以,要特別提醒諸位注意。在用python-mysqldb的時候,為了放置亂碼,可以做如下統一設置: 1. Python文件設置編碼 utf-8(文件前面加上 #encoding=utf-8) 2. MySQL數據庫charset=utf8(數據庫的設置方法,可以網上搜索) 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): ~~~ [client] default-character-set = utf8 [mysqld] default-character-set = utf8 ~~~ windows操作系統請看官自己google。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看