初识Django模型(Model)

这是我参与更文挑战的第8天,活动详情查看: 更文挑战

Django的模型(Model)是什么?

直接对数据库进行增删改查操作是通过SQL语句,Django使用ORM(Object Relational Mapping 对象关系映射)技术,把对数据库的操作封装为对类、对象的操作,这里的类就是模型(Model)。
每一个模型都映射一张数据库表,准确且唯一的描述了数据。包含储存的数据的重要字段和行为。

  • 每个模型都是一个 Python 的类,这些类继承 django.db.models.Model
  • 模型类的每个属性都相当于一个数据库的字段
  • Django 提供了一个自动生成访问数据库的 API,如新增、修改等

为什么不直接使用SQL语句?

借助ORM框架,开发人员既不用再去考虑原生SQL的优化问题,也不用考虑数据库迁移的问题,ORM已经进行了优化且支持多种数据库,可以极大地提升开发效率。

快速认识使用Django模型(Model)流程

  1. 定义模型

models.py定义好模型的字段(类属性)

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    
# 该模型对应的数据库表生成SQL语句为:
# CREATE TABLE myapp_person ("id" serial NOT NULL PRIMARY KEY,"first_name" varchar(30) NOT NULL,"last_name" varchar(30) NOT NULL);
# 表名称myapp_person自动生成,可改写
# id字段自动添加,用作主键,可改写
# 本例创建数据表的语法是 PostgreSQL 格式的。Django 会依据在配置文件中指定的数据库后端生成对应的 SQL 语句。
复制代码
  1. 数据库迁移(创建)
    1. 注册应用:在设置文件setting.py中的INSTALLED_APPS添加模型所在的应用名称
INSTALLED_APPS = [
    #...
    'myapp',
    #...
]
复制代码
2. 数据库迁移:在配置后模型后,需手动执行数据库迁移,从而创建对应的数据库 
复制代码
manage.py makemigrations
manage.py migrate
复制代码
  1. 使用模型

Django模型(Model)实际为类,因此与普通的类、对象使用一致

# 创建对象
p = Person(name="Fred Flintstone", shirt_size="L")

# 保存对象的数据到数据库
p.save()

# 读取对象的信息
p.shirt_size
# 'L'
# 使用对象的方法
p.get_shirt_size_display()
# 'Large'
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享