zoukankan      html  css  js  c++  java
  • Django 第八课 4.【MySQL数据库操作】

    一:Django配置连接数据库:

    在操作数据库之前,首先要连接数据库。这里我们以配置MySQL为例来讲解。Django连接数据库,不需要单独的创建一个连接对象。只需要在settings.py 文件中做好数据库相关的配置就可以了。示例代码如下:

    DATABASES = {
        'default': {
            #数据库引擎(mysql或oracle)
            'ENGINE': 'django.db.backends.mysql',
            #数据库名字
            'NAME': 'django_db1',
            #连接数据库的用户名
            'USER': 'root',
            #连接数据库的密码
            'PASSWORD': '12345678',
            #连接数据库的主机地址
            'HOST': '127.0.0.1',
            #连接数据库的端口号
            '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()
    
    #执行操作语句
        # cursor.execute("insert into book(id,name,author) values(null, '三国演义', '罗贯中')")
        cursor.execute("select id,name,author 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,dispalay_size, internal_size,precission,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语句的数据

    Navicat Premium数据库连接 

    1:打开连接

    2:右键,新建数据库

    3:新建表格

    4:定义表字段,最后Ctrl+s 保存,命名表名

  • 相关阅读:
    Unity3d资源管理分析
    Unity3D之MonoBehaviour的可重写函数整理
    Unity3D脚本学习——运行时类
    A*寻路初探(转载)
    360sdk网游支付服务
    总结使用Unity 3D优化游戏运行性能的经验
    Unity3D之Lightmap详解
    「luogu2714」四元组统计
    「BZOJ1066」[SCOI2007]蜥蜴
    「luogu1251」餐巾计划问题
  • 原文地址:https://www.cnblogs.com/nelsen-chen/p/9480751.html
Copyright © 2011-2022 走看看