django配置连接数据库及原生sql语句的使用方法


Posted in Python onMarch 03, 2019

前言

本文主要给大家介绍了关于django配置连接数据库及原生sql语句的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

Django配置连接数据库:

在操作数据库之前,首先先要连接数据库。这里我们以配置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,他们的接口都是一样的。更多规范请参考:https://www.python.org/dev/peps/pep-0249/。

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参数。示例代码如下:

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

5、fetchone:在执行了查询操作以后,获取第一条数据。

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

7、fetchall:获取所有满足sql语句的数据。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
python自动翻译实现方法
May 28 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
Python简单基础小程序的实例代码
Apr 28 Python
python实现批量nii文件转换为png图像
Jul 18 Python
Win10下python 2.7与python 3.7双环境安装教程图解
Oct 12 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
django框架auth模块用法实例详解
Dec 10 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
opencv 阈值分割的具体使用
Jul 08 Python
Django数据统计功能count()的使用
Nov 30 Python
更新修改后的Python模块方法
Mar 03 #Python
详解js文件通过python访问数据库方法
Mar 03 #Python
Python中的random.uniform()函数教程与实例解析
Mar 02 #Python
Python中按键来获取指定的值
Mar 02 #Python
Python二叉搜索树与双向链表转换算法示例
Mar 02 #Python
Python实现的序列化和反序列化二叉树算法示例
Mar 02 #Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 #Python
You might like
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
VUE安装使用教程详解
2019/06/03 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
浅谈Python中带_的变量或函数命名
2017/12/04 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
个人近期表现材料
2014/02/11 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
小学生安全演讲稿
2014/04/25 职场文书
我的中国梦口号
2014/06/16 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
学生检讨书
2015/01/27 职场文书
离职证明格式样本
2015/06/12 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
springboot如何初始化执行sql语句
2021/06/22 Java/Android