Django 使用原生sql语句操作数据库

Django配置连接数据库:

只需要在 settings.py 文件中做好数据库相关的配置就可以了

DATABASES = {
	'default': {
   		'ENGINE': 'django.db.backends.mysql',   #数据库引擎
    	'NAME': 'book_manager1',                #数据库的名字
    	'USER': 'root',                         #连接mysql数据库的用户名
    	'PASSWORD': '123456',                   #连接mysql数据库的密码
    	'HOST': '127.0.0.1',                    #mysql数据库的主机地址
    	'PORT': '3306',                         #mysql数据库的端口号
	}
}	

Django使用原生sql语句操作数据库

在 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)
    

常用接口

1.rowcount

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

2.close

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

3.execute(sql[,parameters])

执行某个sql语句。如果在执行sql语句的时候还需要传递参数,那么可以传给parameters参数。示例代码如下:

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

3.fetchaone

在执行了查询操作以后,获取第一条数据

4.fetchmany(size)

在执行查询操作以后,获取多条数据。具体是多少条要看传的size参数。如果不传 size 参数,那么默认是获取第一条数据。

5.fetchall

获取所有满足sql语句的数据

posted @ 2019-03-24 16:45  苏黎世的从前  阅读(3475)  评论(0编辑  收藏  举报