Django进阶-1-ORM操作

2019-07-18 15:53:57 浏览数 (1)

Django 框架功能齐全自带数据库操作功能。当程序涉及到数据库相关操作时:

  • 创建数据库,设计表结构和字段;
  • 使用 MySQLdb 或是 SQLite 来连接数据库,并编写数据访问层代码;
  • 业务逻辑层去调用数据访问层执行数据操作。

关系对象映射(ORM),在 Django 中,根据代码中的类自动生成数据库的表。

类名对应 ---> 数据库中的表名

类属性对应 ---> 数据库里的字段

类实例对应 ---> 数据库表里的一行数据

obj.id obj.name ... 类实例对象的属性

Django 的 orm 操作本质上会根据对接的数据库引擎,翻译成对应的 sql 语句;所有使用 Django 开发的项目无需关心程序底层使用的是 Mysql、Oracle、sqlite...,如果数据库迁移,只需要更换 Django 的数据库引擎即可。

mysql 的 pymysql 数据库引擎:

一、 Django 连接 Mysql

① 创建数据库

Django 自带的 orm 是 data_first 类型的 ORM,使用前必须先创建数据库。

代码语言:javascript复制
create database shujuyuntuan default character set utf8 collate utf8_general_ci;

② 修改 项目中的 settings.py 文件中的设置,连接 Mysql 数据库。

代码语言:javascript复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'shujuyuntuan',
        'USER': 'root',
        'PASSWORD': 'qwe123',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

如果要 查看 orm 操作执行的原生 SQL 语句

在项目中的 settings.py 文件增加

代码语言:javascript复制
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}

③ 修改项目中的 __init__.py 文件,设置 Django 默认连接 Mysql 的方式

代码语言:javascript复制
import pymysql
pymysql.install_as_MySQLdb()

④ 进行数据库迁移

在项目的 manage.py 目录下执行

代码语言:javascript复制
python manage.py makemigrations

python manage.py migrate

0 人点赞