左外连接的sql语句_Django数据库连接和使用原生sql语句
在操作數(shù)據(jù)庫之前,首先先要連接數(shù)據(jù)庫。這里我們以配置 MySQL
為例來講解。 Django連接數(shù)據(jù)庫,不需要單獨(dú)的創(chuàng)建一個(gè)連接對(duì)象。只需要在 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ù)庫的端口號(hào) 'PORT': '3306', }}在Django中操作數(shù)據(jù)庫:
在 Django中操作數(shù)據(jù)庫有兩種方式。第一種方式就是使用原生 sql語句操作,第二種就是使用 ORM模型來操作。這節(jié)課首先來講下第一種。
在 Django中使用原生 sql語句操作其實(shí)就是使用 python db api的接口來操作。如果你的 mysql驅(qū)動(dòng)使用的是 pymysql,那么你就是使用 pymysql來操作的,只不過 Django將數(shù)據(jù)庫連接的這一部分封裝好了,我們只要在 settings.py中配置好了數(shù)據(jù)庫連接信息后直接使用 Django封裝好的接口就可以操作了。示例代碼如下:
# 使用django封裝好的connection對(duì)象,會(huì)自動(dòng)讀取settings.py中數(shù)據(jù)庫的配置信息from django.db import connection# 獲取游標(biāo)對(duì)象cursor = connection.cursor()# 拿到游標(biāo)對(duì)象后執(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ū)動(dòng)程序都應(yīng)該遵循這個(gè)規(guī)范。所以不管是使用 pymysql或者是 mysqlclient或者是 mysqldb,他們的接口都是一樣的。
Python DB API下規(guī)范下cursor對(duì)象常用接口:
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í)用處不大。
rowcount:代表的是在執(zhí)行了 sql語句后受影響的行數(shù)。
close:關(guān)閉游標(biāo)。關(guān)閉游標(biāo)以后就再也不能使用了,否則會(huì)拋出異常。
execute(sql[,parameters]):執(zhí)行某個(gè) sql語句。
如果在執(zhí)行 sql語句的時(shí)候還需要傳遞參數(shù),那么可以傳給 parameters參數(shù)。
示例代碼如下:
cursor.execute("select * from article where id=%s
總結(jié)
以上是生活随笔為你收集整理的左外连接的sql语句_Django数据库连接和使用原生sql语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 货物年周转量是怎么计算的
- 下一篇: linux cmake编译源码,linu