• django ORM 数据库连接配置


    前言

    django 中连接数据,可以使用pymysql 也可以使用django 自带的框架ORM 

    pymysql 操作数据库

    用pymysql连接MySQL数据库查询数据
    1. import pymysql
    2. 建立连接
    3. 获取光标
    4. 执行SQL语句
    5. 获取数据
    6. 关闭光标
    7. 关闭连接

    ORM是个啥

    对象关系映射

    类       数据表
    属性      字段
    对象        数据行

    两者的比较

    使用pymysql连接数据库缺点:
    1. 麻烦
    2. 自己写SQL语句!!!
    使用ORM工具连接数据库
    - 优点:
    1. 不用自己写SQL语句!!!
    - 缺点:
    1. 执行效率不高(需要翻译成语句再去执行)

    Django中如何使用ORM

    1. 告诉Django连接哪个MySQL数据库(settings.py)

    settings.py  中数据库连接配置
    #默认的配置,默认使用的是django 自带的数据库sqlite3
    # DATABASES = {
    #     'default': {
    #         'ENGINE': 'django.db.backends.sqlite3',
    #         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    #     }
    # }
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',         #引擎
            'NAME': 'cmdb',                               #数据库名称
            'HOST':'127.0.0.1',                           #主机地址
            'PORT':3306,                                  #端口
            'USER':'root',                                #用户名
            'PASSWORD':'111111',                          #密码
        }
    }
    View Code

    2. 告诉Django用pymysql连接MySQL数据库 (默认用的是MySQLDB)

    在项目的__init__.py 中加入如下配置

    import pymysql
    pymysql.install_as_MySQLdb()
    View Code

    3. 去app/models.py里面创建类

    from django.db import models
    class IDC(models.Model):
        """
        机房信息
        """
        name = models.CharField('机房', max_length=32)
        floor = models.IntegerField('楼层', default=1)
    
        class Meta:
            verbose_name_plural = "机房表"
    
        def __str__(self):
            return self.name
    View Code

    4. 让Django去数据库帮我创建类对应的数据表
      1. python manage.py makemigrations           --> 将models.py的改动记录在小本本上
      2. python manage.py migrate              --> 将变更记录翻译成SQL语句,去数据库执行

    5、在django 中查看数据库表数据

      添加数据源(mysql 作为数据源)

      

          配置数据库连接信息

      

      注意:第一次配置需要下载驱动,在此页面的下面有提示,下载可以。

      添加sqlite3 作为数据源

      

      注意:sqlite3 为文件数据库,数据库实体本身就在django项目目录内,直接右键作为数据源打开即可。

  • 相关阅读:
    洛谷.1110.[ZJOI2007]报表统计(Multiset Heap)
    洛谷.1110.[ZJOI2007]报表统计(Multiset)
    洛谷.3809.[模板]后缀排序(后缀数组 倍增) & 学习笔记
    洛谷.2801.教主的魔法(分块 二分)
    洛谷.2709.小B的询问(莫队)
    COGS.1901.[模板][国家集训队2011]数颜色(带修改莫队)
    COGS.1822.[AHOI2013]作业(莫队 树状数组/分块)
    COGS.1689.[HNOI2010]Bounce 弹飞绵羊(分块)
    COGS.264.数列操作(分块 单点加 区间求和)
    COGS.1317.数列操作c(分块 区间加 区间求和)
  • 原文地址:https://www.cnblogs.com/fanggege/p/10327920.html
Copyright © 2020-2023  润新知