django采用ORM(对象关系)映射:
如下图:
我们可以在models.py文件里面创建我们的商品数据模型,生成对应的数据表
数据库既然是存放数据,那么数据就有类型,下面是常用的数据属性:
models.AutoField #自增列 = int(11)
models.CharField #字符串字段,必须设置max_length参数
models.BooleanField #布尔类型
models.ComaSeparatedIntegerField #用逗号分割的数字,varchar必须设置 max_lenght 参数
models.DateField #日期类型 date
models.DateTimeField #日期时间类型 datetime
models.Decimal #十进制小数类型 = decimal
models.EmailField #一个带有检查 Email 合法性的 CharField
models.FloatField #浮点类型 = double
models.IntegerField #整形
models.GenericIPAddressField #一个带有检查 IP地址合法性的CharField
models.NullBooleanField #允许为空的布尔类型
models.PositiveIntegerFiel #正整数
models.TextField #文本,默认对应的form标签是textarea。
models.TimeField #时间 HH:MM[:ss[.uuuuuu]]
models.URLField #一个带有URL合法性校验的CharField。
models.BinaryField #二进制,存储二进制数据。不能使用filter函数获得QuerySet。models.ImageField #图在这里插入代码片
片
一、创建生成我们的数据库
1.在app目录下中的models.py 中创建我们的数据模型,我们数据模型,暂且根据订单–商品的关系生成,一个订单可以有多个商品,一个商品可以属于一个订单,代码如下:
from django.db import models # Create your models here.创建数据模型 class COrder(models.Model): #订单 cUser = models.CharField(max_length=100) #用户名 fPrice = models.FloatField() #订单价格 dDate = models.DateTimeField() #订单日期时间 class CCusInfo(models.Model): name=models.CharField(max_length=100) #商品名称 order=models.ForeignKey(COrder,models.CASCADE) #所属订单
2.然后在powershell中运行命令,生成我们的数据库:
使用命令生成迁移文件:
python.exe .\manage.py makemigrations
3.使用命令生成数据库:
python.exe .\manage.py migrate
如下图,说明生成成功
成功后可以在我们的工程目录下看到数据库:
二、数据库操作:
我们知道数据库最基础的4个基本操作是:增,删,查,改
通过执行:
python.exe .\manage.py shell
进入python shell下然后开始我们的增删查改操作
代码如下:
增加数据:
>>> from testapp.models import COrder >>> o=COrder >>> o=COrder() >>> o.fPrice=1.1 >>> o.cUser='t' >>> o.save() #保存新增数据
查询数据:
>>> COrder.objects.all() <QuerySet [<COrder: t>]> #可以看到数据数据增加了
修改数据:
>>> o.cUser='Marry' >>> o.save() #更新数据到数据库 >>> COrder.objects.all() <QuerySet [<COrder: Marry>, #再次查询可以看到名字已经被修改了
删除数据:
>>> COrder.objects.all() <QuerySet [<COrder: Marry>]> #删除前,用户为marry >>> o.delete() (1, {'testapp.COrder': 1}) >>> COrder.objects.all() <QuerySet []> #删除后,数据为空