MySQL是Web应用中最常用的数据库, Django模型使用自带的ORM(对象关系映射 Object Relational Mapping)用于实现面向对象编程语言里不同类型系统的数据之间的转换。ORM在业务逻辑层和数据库层之间充当了桥梁的作用。ORM通过使用描述对象和数据库之间的映射的元数据,将程序中的对象自动持久化到数据库中。
image.png
每个模型都是一个Python的类,这些类继承django.db.models.Model
模型类的每个属性都相当于一个数据库的字段
利用这些,Django提供了一个自动生成访问数据库的API
Django项目中 app 文件夹下 models.py 文件中添加如下代码:
from django.db import models
# Create your models here.
class Person(models.Model):
# id = models.AutoField(primary_key=True) # 如果没有指定主键,则 Django 会自动执行这么一条语句,自增 主键
id = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
对应的SQL语句为:
CREATE TABLE myapp_persion(
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
然后在终端执行如下命令(django项目,manage.py所在的文件夹下执行命令)
$ python manage.py makemigrations
$ python manage.py migrate
ORM 对应关系表
image.png
连接数据库
ORM 无法创建数据库(无法操作数据库级别,只能操作到数据表),所以需要事先创建好数据库。
create database xxx;
修改 settings.py 中的DATABASES配置项。
参考文章&