django配置連接數(shù)據(jù)庫及原生sql語句的使用方法
前言
本文主要給大家介紹了關(guān)于django配置連接數(shù)據(jù)庫及原生sql語句的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧
Django配置連接數(shù)據(jù)庫:
在操作數(shù)據(jù)庫之前,首先先要連接數(shù)據(jù)庫。這里我們以配置MySQL為例來講解。Django連接數(shù)據(jù)庫,不需要單獨(dú)的創(chuàng)建一個(gè)連接對象。只需要在settings.py文件中做好數(shù)據(jù)庫相關(guān)的配置就可以了。
示例代碼如下:
DATABASES = {
'default': {
# 數(shù)據(jù)庫引擎(是mysql還是oracle等)
'ENGINE': 'django.db.backends.mysql',
# 數(shù)據(jù)庫的名字
'NAME': 'dfz',
# 連接mysql數(shù)據(jù)庫的用戶名
'USER': 'root',
# 連接mysql數(shù)據(jù)庫的密碼
'PASSWORD': 'root',
# mysql數(shù)據(jù)庫的主機(jī)地址
'HOST': '127.0.0.1',
# mysql數(shù)據(jù)庫的端口號
'PORT': '3306',
}
}
在Django中操作數(shù)據(jù)庫:
在Django中操作數(shù)據(jù)庫有兩種方式。第一種方式就是使用原生sql語句操作,第二種就是使用ORM模型來操作。這節(jié)課首先來講下第一種。
在Django中使用原生sql語句操作其實(shí)就是使用python db api的接口來操作。如果你的mysql驅(qū)動使用的是pymysql,那么你就是使用pymysql來操作的,只不過Django將數(shù)據(jù)庫連接的這一部分封裝好了,我們只要在settings.py中配置好了數(shù)據(jù)庫連接信息后直接使用Django封裝好的接口就可以操作了。示例代碼如下:
# 使用django封裝好的connection對象,會自動讀取settings.py中數(shù)據(jù)庫的配置信息
from django.db import connection
# 獲取游標(biāo)對象
cursor = connection.cursor()
# 拿到游標(biāo)對象后執(zhí)行sql語句
cursor.execute("select * from book")
# 獲取所有的數(shù)據(jù)
rows = cursor.fetchall()
# 遍歷查詢到的數(shù)據(jù)
for row in rows:
print(row)
以上的execute以及fetchall方法都是Python DB API規(guī)范中定義好的。任何使用Python來操作MySQL的驅(qū)動程序都應(yīng)該遵循這個(gè)規(guī)范。所以不管是使用pymysql或者是mysqlclient或者是mysqldb,他們的接口都是一樣的。更多規(guī)范請參考:https://www.python.org/dev/peps/pep-0249/。
Python DB API下規(guī)范下cursor對象常用接口:
1、description:如果cursor執(zhí)行了查詢的sql代碼。那么讀取cursor.description屬性的時(shí)候,將返回一個(gè)列表,這個(gè)列表中裝的是元組,元組中裝的分別是(name,type_code,display_size,internal_size,precision,scale,null_ok),其中name代表的是查找出來的數(shù)據(jù)的字段名稱,其他參數(shù)暫時(shí)用處不大。
2、rowcount:代表的是在執(zhí)行了sql語句后受影響的行數(shù)。
3、close:關(guān)閉游標(biāo)。關(guān)閉游標(biāo)以后就再也不能使用了,否則會拋出異常。
4、execute(sql[,parameters]):執(zhí)行某個(gè)sql語句。如果在執(zhí)行sql語句的時(shí)候還需要傳遞參數(shù),那么可以傳給parameters參數(shù)。示例代碼如下:
cursor.execute("select * from article where id=%s",(1,))
5、fetchone:在執(zhí)行了查詢操作以后,獲取第一條數(shù)據(jù)。
6、fetchmany(size):在執(zhí)行查詢操作以后,獲取多條數(shù)據(jù)。具體是多少條要看傳的size參數(shù)。如果不傳size參數(shù),那么默認(rèn)是獲取第一條數(shù)據(jù)。
7、fetchall:獲取所有滿足sql語句的數(shù)據(jù)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
pandas中concatenate和combine_first的用法詳解
本文主要介紹了pandas中concatenate和combine_first的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Python實(shí)現(xiàn)RGB等圖片的圖像插值算法
這篇文章主要介紹了通過Python實(shí)先圖片的以下三種插值算法:最臨近插值法、線性插值法以及雙線性插值法。感興趣的小伙伴們可以了解一下2021-11-11
Django+python服務(wù)器部署與環(huán)境部署教程詳解
這篇文章主要介紹了Django+python服務(wù)器部署與環(huán)境部署教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Pytorch模型遷移和遷移學(xué)習(xí),導(dǎo)入部分模型參數(shù)的操作
這篇文章主要介紹了Pytorch模型遷移和遷移學(xué)習(xí),導(dǎo)入部分模型參數(shù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python全面解析json數(shù)據(jù)并保存為csv文件
這篇文章主要介紹了Python全面解析json數(shù)據(jù)并保存為csv文件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

