Django 模型层介绍与配置

介绍

模型层(ORM)不需要写sql操作数据库,定义模型类,操作模类来完成对数据库中的表进行增删改查,做数据库迁移的时候比较方便,换数据库的时候只需要在配置文件将库换掉就OK不需要从新写sql
ORM:
  O是object,就是类对象
  R是relation,关系,也就是关系数据中的数据表的意思
  M是mapping,映射的意思
映射:
  类:一个类对应一个表
  类成员变量:代表table表中的一个字段、类型约束
  类对象:sql表的记录

数据库配置

在创建项目后setting中默认配置了sqlite数据库,Django默认使用sqlite数据库

  • 使用mysql数据库,首先要安装pymysql

    pip install pymysql
    
  • 在Django 全局应用的子目录__init__.py文件中添加

    from pymysql import install_as_MySQLdb # 需要导入
    install_as_MySQLdb() # 让pymysql以MySQLDB的运行模式和Django的ORM对接运行
    
  • 在settings.py文件中配置数据库信息

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '127.0.0.1',  # 数据库主机
            'PORT': 3306,  # 数据库端口
            'USER': 'root',  # 数据库用户名
            'PASSWORD': 'root',  # 数据库用户密码
            'NAME': 'db_name'  # 数据库名字
        }
    }
    
  • 在MySQL中创建数据库

    create database db_name; # mysql8.0默认就是utf8mb4;
    create database db_name default charset=utf8mb4; # mysql8.0之前的版本
    
  • 如果想打印ORM转换过程中的SQL,需要在settings中进行如下配置:

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'console':{
                'level':'DEBUG',
                'class':'logging.StreamHandler',
            },
        },
        'loggers': {
            'django.db.backends': {
                'handlers': ['console'],
                'propagate': True,
                'level':'DEBUG',
            },
        }
    }  
    
posted @ 2022-11-28 12:20  zhq9  阅读(25)  评论(0编辑  收藏  举报