前言
本文主要給大家介紹了關于django配置連接數據庫及原生sql語句的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧
Django配置連接數據庫:
在操作數據庫之前,首先先要連接數據庫。這里我們以配置MySQL為例來講解。Django連接數據庫,不需要單獨的創建一個連接對象。只需要在settings.py文件中做好數據庫相關的配置就可以了。
示例代碼如下:
DATABASES = { 'default': { # 數據庫引擎(是mysql還是oracle等) 'ENGINE': 'django.db.backends.mysql', # 數據庫的名字 'NAME': 'dfz', # 連接mysql數據庫的用戶名 'USER': 'root', # 連接mysql數據庫的密碼 'PASSWORD': 'root', # mysql數據庫的主機地址 'HOST': '127.0.0.1', # mysql數據庫的端口號 'PORT': '3306', } }
在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,他們的接口都是一樣的。更多規范請參考:https://www.python.org/dev/peps/pep-0249/。
Python DB API下規范下cursor對象常用接口:
1、description:如果cursor執行了查詢的sql代碼。那么讀取cursor.description屬性的時候,將返回一個列表,這個列表中裝的是元組,元組中裝的分別是(name,type_code,display_size,internal_size,precision,scale,null_ok),其中name代表的是查找出來的數據的字段名稱,其他參數暫時用處不大。
2、rowcount:代表的是在執行了sql語句后受影響的行數。
3、close:關閉游標。關閉游標以后就再也不能使用了,否則會拋出異常。
4、execute(sql[,parameters]):執行某個sql語句。如果在執行sql語句的時候還需要傳遞參數,那么可以傳給parameters參數。示例代碼如下:
cursor.execute("select * from article where id=%s",(1,))
5、fetchone:在執行了查詢操作以后,獲取第一條數據。
6、fetchmany(size):在執行查詢操作以后,獲取多條數據。具體是多少條要看傳的size參數。如果不傳size參數,那么默認是獲取第一條數據。
7、fetchall:獲取所有滿足sql語句的數據。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。