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