<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ![](https://img.kancloud.cn/41/e0/41e066af9a6c25a24868d9667253ec98_1241x333.jpg) ## MySQL驅動程序安裝 我們使用Django來操作MySQL,實際上底層還是通過Python來操作的。因此我們想要用Django來操作MySQL,首先還是需要安裝一個驅動程序。在Python3中,驅動程序有多種選擇。比如有pymysql以及mysqlclient等。這里我們就使用mysqlclient來操作。mysqlclient安裝非常簡單。只需要通過pip install mysqlclient即可安裝。 常見MySQL驅動介紹: 1. MySQL-python:也就是MySQLdb。是對C語言操作MySQL數據庫的一個簡單封裝。遵循了Python DB API v2 但是只支持Python2,目前還不支持Python3。 2. mysqlclient:是MySQL-python的另外一個分支。支持Python3 并且修復了一些bug。 3. pymysql:純Python實現的一個驅動。因為是純Python編寫的,因此執行效率不如MySQL-python。并且也因為是純Python編寫的,因此可以和Python代碼無縫銜接。 4. MySQL Connector/Python:MySQL官方推出的使用純Python連接MySQL的驅動。因為是純Python開發的。效率不高。 ## Django配置連接數據庫 在操作數據庫之前,首先先要連接數據庫。這里我們以配置MySQL為例來講解。Django連接數據庫,不需要單獨的創建一個連接對象。只需要在settings.py文件中做好數據庫相關的配置就可以了 ``` DATABASES = { 'default': { # 數據庫引擎(是mysql還是oracle等) 'ENGINE': 'django.db.backends.mysql', # 數據庫的名字 'NAME': 'logic', # 連接mysql數據庫的用戶名 'USER': 'root', # 連接mysql數據庫的密碼 'PASSWORD': 'root', # mysql數據庫的主機地址 'HOST': '127.0.0.1', # mysql數據庫的端口號 'PORT': '3306', } } 連接Linux服務器MySQL問題:https://blog.csdn.net/qq473179304/article/details/56665364 ``` ### 在Django中操作數據庫 在Django中操作數據庫有兩種方式。第一種方式就是使用原生sql語句操作,第二種就是使用ORM模型來操作。 在Django中使用原生sql語句操作其實就是使用python db api的接口來操作。如果你的mysql驅動使用的是pymysql,那么你就是使用pymysql來操作的,只不過Django將數據庫連接的這一部分封裝好了,我們只要在settings.py中配置好了數據庫連接信息后直接使用Django封裝好的接口就可以操作了 ``` # 使用django封裝好的connection對象,會自動讀取settings.py中數據庫的配置信息 from django.db import connection # 獲取游標對象 cursor = connection.cursor() # 拿到游標對象后執行sql語句 cursor.execute("select * from book") # 獲取所有的數據 rows = cursor.fetchall() # 遍歷查詢到的數據 for row in rows: print(row) ``` 以上的execute以及fetchall方法都是Python DB API規范中定義好的。任何使用Python來操作MySQL的驅動程序都應該遵循這個規范。所以不管是使用pymysql或者是mysqlclient或者是mysqldb,他們的接口都是一樣的。 ### Python DB API下規范下cursor對象常用接口 <ol> <li><p><code>description</code>:如果<code>cursor</code>執行了查詢的<code>sql</code>代碼。那么讀取<code>cursor.description</code>屬性的時候,將返回一個列表,這個列表中裝的是元組,元組中裝的分別是<code>(name,type_code,display_size,internal_size,precision,scale,null_ok)</code>,其中<code>name</code>代表的是查找出來的數據的字段名稱,其他參數暫時用處不大。</p> </li> <li><p><code>rowcount</code>:代表的是在執行了<code>sql</code>語句后受影響的行數。</p> </li> <li><p><code>close</code>:關閉游標。關閉游標以后就再也不能使用了,否則會拋出異常。</p> </li> <li><p><code>execute(sql[,parameters])</code>:執行某個<code>sql</code>語句。如果在執行<code>sql</code>語句的時候還需要傳遞參數,那么可以傳給<code>parameters</code>參數。示例代碼如下:</p> <pre><code class="lang-python"> cursor.execute(<span class="hljs-string">"select * from article where id=%s"</span>,(<span class="hljs-number">1</span>,)) </code></pre> </li> <li><p><code>fetchone</code>:在執行了查詢操作以后,獲取第一條數據。</p> </li> <li><p><code>fetchmany(size)</code>:在執行查詢操作以后,獲取多條數據。具體是多少條要看傳的<code>size</code>參數。如果不傳<code>size</code>參數,那么默認是獲取第一條數據。</p> </li> <li><p><code>fetchall</code>:獲取所有滿足<code>sql</code>語句的數據。</p> </li> </ol>
                  <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>

                              哎呀哎呀视频在线观看