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语句的数据。

总结

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

(0)

相关推荐

  • Django 使用logging打印日志的实例

    Django使用python自带的logging 作为日志打印工具.简单介绍下logging. logging 是线程安全的,其主要由4部分组成: Logger 用户使用的直接接口,将日志传递给Handler Handler 控制日志输出到哪里,console,file- 一个logger可以有多个Handler Filter 控制哪些日志可以从logger流向Handler Formatter 控制日志的格式 用户使用logging.getLogger([name])获取logger实例. 如

  • django+mysql的使用示例

    Django中每一个模型model都对应于数据库中的一张表,每个模型中的字段都对应于数据库表的列.方便的是,django可以自动生成这些create table, alter table, drop table的操作.其次Django为咱们也提供了后台管理模块(Django-Admin),主要功能是通过后台管理来实现客户端的功能,可以对数据进行增删改查.也可以通过该功能进行二次开发 Django中的mysql配置 在上期内容,我们了解了settings.py配置信息的内容,其中DATABASES

  • django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】

    本文实例讲述了django框架事务处理.分享给大家供大家参考,具体如下: django 中要求事务处理的情况有两种: 1.基于django orM 的 transaction 处理 2.是基于自定义SQL 语句的transaction的处理,通常是比较复杂的SQL ,用ORM 处理不方便的时候用的.或者是大批量SQL语句执行,比较在意效率的情况下用. 首先说一下第二种情况,因为这种情况相对简单一点,没ORM 那么多东西,用我写的一个方法来解释 from django.db import conn

  • ORM Django 终端打印 SQL 语句实现解析

    在 settings.py 中添加以下内容: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'le

  • django连接mysql配置方法总结(推荐)

    最近在学习django,学到第五章模型时,需要连接数据库,然后,在这里分享一下方法. 起初是不知道怎样配置mysql数据库,但是还好,django的官网上面有相关的配置方法,下面就直接给分享一下. 这是settings文件里面的基础配置,使用的是sqlite,那我们需要连接其他数据库呢? DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'mydatabase', } } 下面是mysql的配置方

  • 获取django框架orm query执行的sql语句实现方法分析

    本文实例讲述了获取django框架orm query执行的sql语句实现方法.分享给大家供大家参考,具体如下: 利用Django orM 可以很方便的写出很多查询,但有时候,我们需要检查这些利用 orM 生成的 SQL 语句是否正确,就需要检查这些ORM 生成的 原生的SQL 语句是否正确.经过测试有如下几种方法: 1. 通过数据库的跟踪日志,可以看到查询的语句,比如mysql 就可以配置把所有的 SQL 语句打印到日志中,但这种方式并不推荐,只是没有办法的时候才这么做. 2. 利用django

  • Django框架orM与自定义SQL语句混合事务控制操作

    本文实例讲述了Django框架orM与自定义SQL语句混合事务控制操作.分享给大家供大家参考,具体如下: 用单纯的ORM 或者单纯的自定义SQL语句,都比较好控制事务.在前面的一篇文章中已经讲过Django事务小结 ,但里面没有提到在同一个方法里面既有ORM 又有 自定义SQL 语句的情况. 如果是单纯的ORM ,可以这样做,假设已经定义好model, User,Category. from django.db import transaction ... @commit_on_success

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

    前言 本文主要给大家介绍了关于django配置连接数据库及原生sql语句的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库.这里我们以配置MySQL为例来讲解.Django连接数据库,不需要单独的创建一个连接对象.只需要在settings.py文件中做好数据库相关的配置就可以了. 示例代码如下: DATABASES = { 'default': { # 数据库引擎(是mysql还是oracle等) 'EN

  • django中使用原生sql语句的方法步骤

    raw # row方法:(掺杂着原生sql和orm来执行的操作) res = CookBook.objects.raw('select id as nid from epos_cookbook where id>%s', params=[1, ]) print(res.columns) # ['nid'] print(type(res)) # <class 'django.db.models.query.RawQuerySet'> # 在select里面查询到的数据orm里面的要一一对应

  • Idea连接数据库并执行SQL语句的方法示例

    1.Idea显示Database Idea有一个功能可以连接数据库,那就是Idea的Database,如图 Database在Idea中显示如下 1)点击view 2)点击Tool Buttons 2)点击view 2)点击Tool Windows 3)点击Database 2.连接数据库 1.打开界面 2.配置连接信息 3.测试连接 4.面板基本信息 5.选择要显示的数据库 6.表的基本信息 7.新建查询 8.设置sql的备注名称 9.编写sql执行 第1种,先选择sql语句,在点击执行按钮

  • thinkPHP框架中执行原生SQL语句的方法

    本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $Model = D(); 或者 $Model = M(); $sql = "select * from `order`"; $voList = $Model->query($sql); 只是需要new一个空的模型继承Model中的方法. 注意query是查功能,execute是增删改

  • Laravel使用原生sql语句并调用的方法

    有一些sql语句比较复杂,用构造器还不如直接用sql来的方便,我们在laravel中使用原生语句,首先要在开头use DB,然后: $arr = DB::select("select id,sum(parents+1) as total_people from orders where game_id=6 and pay_status=1 and hotel_id=5"); 接下来,我们程序里怎么获取到查询到的值呢? 查询到的是一个数组,但是里面的内容属于对象,我们要这么调用: $ar

  • Laravel框架执行原生SQL语句及使用paginate分页的方法

    本文实例讲述了Laravel框架执行原生SQL语句及使用paginate分页的方法.分享给大家供大家参考,具体如下: 1.运行原生sql public function getList($data){ //获取前端传过来的参数 $user = $data['userId']; $office = $data['officeId']; $key = $data['oneKeySearch']; //进行模糊搜索和联合查询 $where = 'and 1=1 '; if($key!=null) {

  • Laravel 使用查询构造器配合原生sql语句查询的例子

    首先说一下本人使用的版本: 5.5 在很多复杂查询时, 往往需要原生语句进行查询, 在 laravel 中, 我们可以这样使用原生查询 $user = DB::select('select * from users where id= ?', [1]) 查询构建器 https://laravel-china.org/docs/laravel/5.5/queries#where-clauses $sql = '(FROM table_name1 LEFT JOIN table_name2 ON t

  • ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例

    本文实例讲述了ThinkPHP3.2.3框架实现执行原生SQL语句的方法.分享给大家供大家参考,具体如下: [查询语句]query方法 示例:查询blog_article表中的文章标题title字段 //构造sql语句 $sql = "select `title` from blog_article"; //或者下面两种,都会自动读取当前设置的表前缀 //$sql = "select `title` from __PREFIX__article"; //$sql =

  • SpringData如何通过@Query注解支持JPA语句和原生SQL语句

    目录 通过@Query注解支持JPA语句和原生SQL语句 @Query注解的用法(Spring Data JPA) 1.一个使用@Query注解的简单例子 2.Like表达式 3.使用Native SQL Query 4.使用@Param注解注入参数 5.SPEL表达式(使用时请参考最后的补充说明) 6.一个较完整的例子 7.解释例6中错误的原因 通过@Query注解支持JPA语句和原生SQL语句 在SpringData中们可是使用继承接口直接按照规则写方法名即可完成查询的方法,不需要写具体的实

随机推荐