目录
介绍
模型层(ORM)不需要写sql操作数据库,定义模型类,操作模类来完成对数据库中的表进行增删改查,做数据库迁移的时候比较方便,换数据库的时候只需要在配置文件将库换掉就OK不需要从新写sql
ORM:
O是object,就是类对象
R是relation,关系,也就是关系数据中的数据表的意思
M是mapping,映射的意思
映射:
类:一个类对应一个表
类成员变量:代表table表中的一个字段、类型约束
类对象:sql表的记录
数据库配置
在创建项目后setting中默认配置了sqlite数据库,Django默认使用sqlite数据库
-
使用
mysql
数据库,首先要安装pymysqlpip 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', }, } }