当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:
- 创建数据库,设计表结构和字段;
- 使用 MySQLdb 来连接数据库,并编写数据访问层代码;
- 业务逻辑层去调用数据访问层执行数据库操作。
ORM的概念
ORM:Object Relational Mapping(对象关系映射),是使用面向对象的思维来操作数据库。
python中类名 --------------对应---------->数据库中的表名
python类属性 -----------对应--------->数据库里的字段
python类实例------------对应--------->数据库表里的一行数据
obj.id obj.name.....
类实例对象的属性。
在django中,根据代码中的类自动生成数据库的表也叫–code first
Django orm的优势:
-
Django的orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句;
-
所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite…,如果数据库迁移,只需要更换Django的数据库引擎即可。
常用字段
-
AutoField
int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。 -
IntegerField
一个整数类型,范围在 -2147483648 to 2147483647。 -
CharField
字符类型,必须提供max_length参数, max_length表示字符长度。 -
DateField
日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。 -
DateTimeField
日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例。
一、将用户保存到数据库(增)
- 创建模型类,生成对应的数据库表格
models.py 文件:
from django.db import models
class Person(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32, null=False, unique=True)
age = m