左外连接的sql语句_Django数据库连接和使用原生sql语句

本文介绍了在Django中如何连接和操作MySQL数据库,特别是使用原生SQL语句,包括左外连接。Django通过在settings.py配置数据库连接,提供了Python DB API接口。文中详细解释了cursor对象的常用接口,如description、rowcount和close,并给出execute方法执行SQL语句的示例。
摘要由CSDN通过智能技术生成
291d7a87ca9362ca67fc534fd29bd8ac.png

在操作数据库之前,首先先要连接数据库。这里我们以配置 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,他们的接口都是一样的。

Python DB API下规范下cursor对象常用接口:

description:如果 cursor执行了查询的 sql代码。

那么读取 cursor.description属性的时候,将返回一个列表,这个列表中装的是元组,元组中装的分别是(name,type_code,display_size,internal_size,precision,scale,null_ok),其中 name代表的是查找出来的数据的字段名称,其他参数暂时用处不大。

rowcount:代表的是在执行了 sql语句后受影响的行数。

close:关闭游标。关闭游标以后就再也不能使用了,否则会抛出异常。

execute(sql[,parameters]):执行某个 sql语句。

如果在执行 sql语句的时候还需要传递参数,那么可以传给 parameters参数。

示例代码如下:

cursor.execute("select * from article where id=%s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值