MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动
ORM是“对象-关系-映射”的简称。
一、单表操作
一、创建表
1 创建模型
创建名为app01的app,在app01下的models.py中创建模型,用于存放表结构。
项目名\app01/models.py:
from django.db import models
# 存放表结构
class Book(models.Model):
nid = models.AutoField(primary_key=True) #自动递增主键
title = models.CharField(max_length=32)
price = models.DecimalField(max_digits=8, decimal_places=2) #999999.99
pub_date = models.DateTimeField() #"2019-10-01"
publish = models.CharField(max_length=32)
2 其他字段和参数设置
字段名 | 释义 |
---|---|
CharField | 字符串字段, 用于较短的字符串 |
IntegerField | 用于保存一个整数 |
FloatField | 一个浮点数. 必须提供两个参数 |
AutoField | 一个 IntegerField, 添加记录时它会自动增长,如果不指定主键,会自动添加一个主键字段 |
BooleanField | A true/false field. admin 用 checkbox 来表示此类字段 |
TextField | 一个容量很大的文本字段 |
EmailField | 带有检查Email合法性的 CharField,不接受 maxlength 参数 |
DateField | 日期字段. 有额外的可选参数 |
DateTimeField | 日期时间字段. 类似 DateField 支持同样的附加选项 |
ImageField | 类似 FileField, 不过要校验上传对象是否是一个合法图片 |
FileField | 文件上传字段 |
URLField | 用于保存 URL |
NullBooleanField | 类似 BooleanField, 不过允许 NULL 作为其中一个选项. 推荐使用这 |