Django原生语句操作数据库 笔记

MySQL驱动安装

我们使用Django来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。这里我们就使用mysqlclient来操作。
mysqlclient安装非常简单。只需要通过pip install mysqlclient即可安装。

常见MySQL驱动介绍:
1.MySQL-python:也就是MySQLdb。是对C语言操作MySQL数据库的一个简单封装。遵循了Python DB API v2,但是只支持Python2,目前还不支持Python3.
2.mysqlclient:是MySQL-python的另一个分支。支持Python3并且修复了一些bug。
3.pymysql:纯Python实现的一个驱动,因为是纯Python编写的,因此执行效率不如MySQL-python。并且也因为是纯Python编写的,因此可以和Python代码无缝衔接。
4.MySQL Connector/Python:MySQL官方推出的使用纯Python链接MySQL的驱动。因为是纯Python开发的,效率不高。

Django配置连接数据库

在操作数据库之前,首先先要连接数据库。这里我们以配置MySQL为例来讲解。Django连接数据库,不需要单独的创建一个人连接对象,只需要在settings.py文件中做好数据库的相关配置就可以了
在这里插入图片描述

在Django中操作数据库

在Django中操作数据库有两种方式。第一种就是使用原生的sql语句操作,第二种就是使用ORM模型来操作。
在Django中使用原生sql语句操作其实就是使用python db api的接口来操作。如果你的mysql驱动使用的是pymysql,那么你就是使用pymysql来操作的,只不过Django将数据库连接的这一部分封装好了,我们只要在settings.py中配置好了数据库连接信息后直接使用Django封装好的接口就可以操作了

在这里插入图片描述
以上的execute以及fetchall方法都是Python DB API规范中定义好的。任何使用Python来操作MySQL的驱动程序都应该遵循这个规范。所以不管使用pymysql还是mysqlclient或者mysqldb,他们的接口都是一样的。

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参数。
5、fetchone:在执行了查询操作后,获取第一条数据。
6、fetmany(size):在执行了查询操作后,获取多条数据。具体多少条要看传的size参数。如果不传size参数,那么默认是获取第一条数据。
7、fetchall:获取所有满足sql语句的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值