django怎么设置数据库(django配置连接数据库及原生sql语句的使用方法)
django怎么设置数据库
django配置连接数据库及原生sql语句的使用方法前言
本文主要给大家介绍了关于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语句的数据。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对开心学习网的支持。
原文链接:https://www.jianshu.com/p/38017b4130a6
- sql语句delete的用法(SQL删除语句DROP、TRUNCATE、 DELETE 的区别)
- sqlserver复制表结构及数据到新表(SQL SERVER 表与表之间 字段一对多sql语句写法)
- mysql语句性能分析(聊聊MySQL的COUNT*的性能)
- sql查询union怎么用(SQL语句之Union和Union All的用法)
- sql语句行转列怎么设置(SQL行转列和列转行代码详解)
- mysql的sql语句优化5种方式(MySQL:五个常见优化SQL的技巧)
- sql怎么对一列数据分组另一行求和(分组后分组合计以及总计SQL语句稍微整理了一下)
- sql语句执行顺序
- dedecms如何写接口(dede的sql语句调用方法使用示例)
- 创建数据表的sql语句代码(用注解编写创建表的SQL语句)
- 如何查看sql语句执行时间
- 一个sql查询数据多表连接查询(一条SQL语句查询多个数据库)
- mysql中如何设置多个主键(Mysql 增加主键或者修改主键的sql语句操作)
- php提供哪些函数来避免sql的注入(PHP与SQL语句写一句话木马总结)
- SQL语句中单引号
- 优化SQL语句,提高数据库的访问性能
- 盘点那些年让人称奇的年终奖 最后一个赢辣条毫无悬念(盘点那些年让人称奇的年终奖)
- 你还没有升职吗 他竟因为几套激励理论,升职了(你还没有升职吗)
- 某知名企业绩效管理体系及薪酬分配体系操作手册(某知名企业绩效管理体系及薪酬分配体系操作手册)
- 职场人改不掉这4个习惯,只会越混越穷,一辈子也翻不了身(职场人改不掉这4个习惯)
- 华为 联想等46家公司笔试面试题,涉及各行各业,建议收藏(联想等46家公司笔试面试题)
- ()
热门推荐
- dedecms兼容模式(DedeCMS 验证码不正确的解决方法php配置问题)
- dedecms后台关键词(DedeCms防止垃圾文章群发、垃圾评论和注册的方法)
- pythonpandas提取列索引(Python3.5 Pandas模块缺失值处理和层次索引实例详解)
- memcache安装与调优部署文件(Memcached构建缓存服务器的方法)
- 云虚拟主机缺点(云虚拟主机未来会怎么发展?)
- nginx优化分几种(Nginx优化服务之网页压缩的实现方法)
- mysql六大锁解析(MySQL 锁的相关知识总结)
- vue函数中的默认参数(Vue3中SetUp函数的参数props、context详解)
- mysql分库分表视图(MySQL分库分表与分区的入门指南)
- 钉钉嵌入web端应用程序(钉钉企业内部H5微应用开发详解)