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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
Python标准库之多进程(multiprocessing包)介绍
Nov 25 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
Dec 10 Python
使用Python从零开始撸一个区块链
Mar 14 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
pandas计数 value_counts()的使用
Jun 24 Python
python根据多个文件名批量查找文件
Aug 13 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
Python selenium的基本使用方法分析
Dec 21 Python
Python安装并操作redis实现流程详解
Oct 13 Python
matplotlib制作雷达图报错ValueError的实现
Jan 05 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安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
CURL状态码列表(详细)
2013/06/27 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
PHP设计模式之适配器模式原理与用法分析
2018/04/25 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
使用python进行拆分大文件的方法
2018/12/10 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
医药营销专业个人自荐信
2013/09/29 职场文书
厨师岗位职责
2013/11/12 职场文书
八项规定整改措施
2014/02/12 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
五年级作文之想象作文
2019/10/30 职场文书