共计 1017 个字符,预计需要花费 3 分钟才能阅读完成。
一、ORM
-
概念
全称
Object Relational Mapping
,中文叫做对象关系映射Django 提供了各种数据库的支持,为了大多数数据库提供了统一的接口。可以根据不同的业务请求使用不用的数据库
-
作用
通过
ORM
我们可以通过类的方式去操作数据库,而不用再写原生的 SQL 语句 -
任务
根据对象的类型生成表结构
将对象、列表的操作,转换为 sql 语句
-
优点
易用性:使用
ORM
做数据库的开发可以有效的减少重复 SQL 语句的概率,写出来的模型也更加直观、清晰性能损耗小:
ORM
转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这种性能损耗很少(不足 5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显设计灵活:可以轻松的写出复杂的查询
可移植性:封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的
MySQL
、PostgreSQL
和SQLite
。可以非常轻松的切换数据库 -
图解
二、配置数据库
-
注意
默认使用的是 sqlite 数据库
-
配置流程
-
配置 sqlite 数据库代码为
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3', # 选择数据库引擎 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # 创建 sqlite 数据库文件位置 } }
-
配置 mysql 数据库
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 选择数据库引擎 'NAME': 'lucky', # 数据库名称 'HOST': '127.0.0.1', # 主机 'USER': 'lucky', # 用户名 'PASSWORD': '123456', # 密码 'PORT': 3306, # 端口 } }
-
安装 pymysql 扩展库
pip3 install pymysql
-
在 project 的 init.py 文件中 添加如下代码
python3.x 使用的是 pymysql 模块,所以需要在 project/__init.py 文件中添加如上代码
import pymysql pymysql.install_as_MySQLdb()
-
三、表分析
-
需求
创建用户表
-
用户表所需字段
用户名 密码 性别 年龄 个人简介 头像 是否删除
-
创建模型代码位置
App->models.py
-
模型、属性、表之间的关联
一个模型类对应数据库中的一张表,一个类属性对应表中的一个字段
正文完
星哥玩云-微信公众号