只需要在 settings.py 文件中做好數(shù)據(jù)庫(kù)相關(guān)的配置就可以了
DATABASES = {'default': { 'ENGINE': 'django.db.backends.mysql', #數(shù)據(jù)庫(kù)引擎 'NAME': 'book_manager1', #數(shù)據(jù)庫(kù)的名字 'USER': 'root', #連接mysql數(shù)據(jù)庫(kù)的用戶名 'PASSWORD': '123456', #連接mysql數(shù)據(jù)庫(kù)的密碼 'HOST': '127.0.0.1', #mysql數(shù)據(jù)庫(kù)的主機(jī)地址 'PORT': '3306', #mysql數(shù)據(jù)庫(kù)的端口號(hào) } }
在 Django中使用原生sql語(yǔ)句操作其實(shí)就是使用python db api的接口來(lái)操作。如果你的mysql驅(qū)動(dòng)使用的是pymysql,那么你就是使用pymysql來(lái)操作的,只不過(guò)Django將數(shù)據(jù)庫(kù)連接的這一部分封裝好了,我們只要在settings.py中配置好了數(shù)據(jù)庫(kù)連接信息后直接使用 Django 封裝好的接口就可以操作了。
使用django封裝好的connection對(duì)象,會(huì)自動(dòng)讀取settings.py中數(shù)據(jù)庫(kù)的配置信息
from django.db import connection
獲取游標(biāo)對(duì)象
cursor = connection.cursor()
拿到游標(biāo)對(duì)象后執(zhí)行sql語(yǔ)句
cursor.execute("select * from book")
獲取所有的數(shù)據(jù)
rows = cursor.fetchall()
遍歷查詢到的數(shù)據(jù)
for row in rows: print(row)
1.rowcount
代表的是在執(zhí)行了 sql 語(yǔ)句后受影響的行數(shù)。
2.close
關(guān)閉游標(biāo)。關(guān)閉游標(biāo)以后就再也不能使用了,否則會(huì)拋出異常。
3.execute(sql[,parameters])
執(zhí)行某個(gè)sql語(yǔ)句。如果在執(zhí)行sql語(yǔ)句的時(shí)候還需要傳遞參數(shù),那么可以傳給parameters參數(shù)。示例代碼如下:
cursor.execute("select * from article where id=%s",(1,))
3.fetchaone
在執(zhí)行了查詢操作以后,獲取第一條數(shù)據(jù)
4.fetchmany(size)
在執(zhí)行查詢操作以后,獲取多條數(shù)據(jù)。具體是多少條要看傳的size參數(shù)。如果不傳 size 參數(shù),那么默認(rèn)是獲取第一條數(shù)據(jù)。
5.fetchall
獲取所有滿足sql語(yǔ)句的數(shù)據(jù)
聯(lián)系客服