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实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
Python单例模式实例分析
Jan 14 Python
举例详解Python中yield生成器的用法
Aug 05 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
浅析Python装饰器以及装饰器模式
May 28 Python
Python列表对象实现原理详解
Jul 01 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
通过字符串导入 Python 模块的方法详解
Oct 27 Python
如何在sublime编辑器中安装python
May 20 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
Python requests接口测试实现代码
Sep 08 Python
python实现学生信息管理系统(精简版)
Nov 27 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 FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
php获取url参数方法总结
2014/11/13 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
夜大毕业生自我鉴定
2013/10/31 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
五一口号
2014/06/19 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript