Django06——模型操作(图书人物案例)

1、ORM 模型映射到数据库步骤

模型操作步骤如下:

(1)配置数据库
settings.py 中,配置好DATABASES,做好数据库相关的配置。
(2)编写模型
app中的models.py中定义好模型,这个模型必须继承自django.db.models.Model类。
(3)注册应用
将这个app添加到settings.pyINSTALLED_APP中。
(4)生成迁移文件
在命令行终端,进入到项目所在的路径,然后执行命令来生成迁移脚本文件。

python  manage.py  makemigrations

(5)执行迁移文件
同样在命令行中,执行命令来将迁移脚本文件映射到数据库中。

python  manage.py  migrate

(6)crud
使用模型类进行crud操作。

2、配置数据库

如果使用默认数据库,则可以不用修改。先不修改,保持数据库的默认配置。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

3、定义模型

模型在上一节中已经定义好了

4、注册应用

打开settings.py文件,修改INSTALLED_APPS项,增加以下内容:

'bh'或'apps.bh',

在这里插入图片描述

5、生成迁移文件

python manage.py makemigrations

在这里插入图片描述

6、执行迁移文件

python manage.py migrate

根据数据库相关配置,生成数据库。
在这里插入图片描述

7、录入测试数据

insert into bh_bookinfo(btitle,bpublish,bread,bcomment,isDelete) values (‘射雕英雄传’,‘1980-5-1’,12,34,0);
insert into bh_bookinfo(btitle,bpublish,bread,bcomment,isDelete) values (‘天龙八部’,‘1986-7-24’,36,40,0);
insert into bh_bookinfo(btitle,bpublish,bread,bcomment,isDelete) values (‘笑傲江湖’,‘1995-12-24’,20,80,0);
insert into bh_bookinfo(btitle,bpublish,bread,bcomment,isDelete) values (‘雪山飞狐’,‘1987-11-11’,58,24,0);

insert into bh_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values (‘郭靖’,1,1,‘降龙十八掌’,0);
insert into bh_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values (‘黄蓉’,0,1,‘打狗棍法’,0);
insert into bh_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values (‘黄药师’,1,1,‘弹指神通’,0);
insert into bh_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values (‘欧阳锋’,1,1,‘蛤蟆功’,0);
insert into bh_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values (‘梅超风’,0,1,‘九阴白骨爪’,0);

8、CRUD操作

进入Python Console进行简单的模型API练习
在这里插入图片描述
(1)引入需要的包

from apps.bh.models import BookInfo,HeroInfo
from django.utils import timezone
from datetime import *

(2)查询所有图书信息

BookInfo.objects.all()

(3)新建图书信息

b = BookInfo()
b.btitle = "西游记"
b.bpublish = datetime(year=1986,month=10,day=11)
b.save()

(4)查找图书

b=BookInfo.objects.get(pk=1)
b
b.id
b.btitle

(5)修改图书

b.btitle="天龙八部"
b.save()

(6)删除图书

b.delete()

(7)关联对象的操作

h=HeroInfo()
h.hname='test'
h.hgender=True
h.hcontent='hello'
b = BookInfo.objects.get(pk=2)
h.hbook=b
h.save()

(8)返回当前book对象的所有hero

b.heroinfo_set.all()

heroinfo为模型类HeroInfo的小写,由Django识别。

(9)根据图书创建人物

h= b.heroinfo_set.create(hname="lzy",hgender=False,hcontent="ied")
h

(10)找到hero对象对应的那本书,对应一本书

h.hbook
h.hbook.id    所对应图书的id
h.hbook_id  所对应图书的id

9、思考

如何根据模型迁移到MySQL数据库呢?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值