Django模型(二)

目录

项目准备

4.数据库操作

1.shell工具

2.数据库操作-增、删、改

2.1.增加

2.2.修改

2.3.删除


项目准备

1.新建一个项目工程【bookmanger01】,应用为【book】(具体操作,看之前的文章)

在models.py 文件中定义模型类。

from django.db import models

# Create your models here.
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
    # 创建字段,字段类型...
    name = models.CharField(max_length=20, verbose_name='名称')
    readcount = models.IntegerField(default=0, verbose_name='阅读量')
    commentcount = models.IntegerField(default=0, verbose_name='评论量')

    class Meta:
        db_table = 'bookinfo'  # 指明数据库表名
        verbose_name = '图书'  # 在admin站点中显示的名称

    def __str__(self):
        """定义每个数据对象的显示信息"""
        return self.name

# 准备人物列表信息的模型类
class PeopleInfo(models.Model):
    GENDER_CHOICES = (
        (0, 'male'),
        (1, 'female')
    )
    name = models.CharField(max_length=20, verbose_name='名称')
    gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0, verbose_name='性别')
    description = models.CharField(max_length=200, null=True, verbose_name='描述信息')
    book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name='图书') # 外键


    class Meta:
        db_table = 'peopleinfo'
        verbose_name = '人物信息'

    def __str__(self):
        return self.name

插入信息:

insert into bookinfo(name, readcount,commentcount) values
('斗罗大陆', 12, 34),
('斗破苍穹', 36, 40),
('武动乾坤', 20, 80),
('牧龙师', 58, 24);

insert into peopleinfo(name, gender, book_id, description)  values
    ('唐三', 1, 1, '蓝银草'),
    ('小舞', 0, 1, '柔骨兔'),
    ('小刚大师', 1, 1, '罗三炮'),
    ('戴沫白', 1, 1, '邪眸白虎'),
    ('竹叶青', 0, 1, '幽冥猫'),
    ('萧炎', 1, 2, '斗帝'),
    ('药老', 1, 2, '半圣'),
    ('风尊者', 1, 2, '斗尊'),
    ('美杜莎女王', 0, 2, '斗宗'),
    ('林动', 1, 3, '武祖'),
    ('绫清竹', 0, 3, '九天太清宫宫主'),
    ('林貂', 1, 3, '天妖貂族少族长'),
    ('应欢欢', 0, 3, '冰主轮回者'),
    ('祝明朗', 1, 4, '牧龙师'),
    ('黎云姿', 0, 4, '神凡念力师'),
    ('黎星画', 0, 4, '预言师'),
    ('南玲纱', 0, 4, '画师');

如图:

4.数据库操作

1.shell工具

Django的manage工具提供了shell命令,帮助我们配置好当前工程的运行环境(如连接好数据库等),以便可以直接在终端【Terminal】中执行测试python语句。

当我们完成数据表的迁移之后,下面就可以通过进入项目的shell,进行简单的API操作。如果需要退出项目,可以使用ctrl+d快捷键或输入quit()。

通过如下命令进入shell

python manage.py shell

示例:

 打开shell后,在shell中导入模块即可使用。

from book.models import BookInfo,PeopleInfo

2.数据库操作-增、删、改

2.1.增加

增加数据的两种方法:

a、save方法:通过创建模型类对象,执行对象的save()方法保存到数据库中。

示例代码:

>>> from book.models import BookInfo,PeopleInfo
>>> book = BookInfo(
... name = '大主宰'
... )
>>> book.save()
>>> book
<BookInfo: 大主宰>

数据库中查看:

b、create方法: 通过模型类.objects.create()保存。

示例代码:

PeopleInfo.objects.create(
... name = '牧尘',
... book = book
... )
<PeopleInfo: 牧尘>

2.2.修改

修改更新的两种方法:

a、save方法:修改模型类对象的属性,然后执行save()方法

代码示例:

>>> person = PeopleInfo.objects.get(name='牧尘')
>>> person.name = '牧尊'
>>> person.save()
>>> person
<PeopleInfo: 牧尊>

b、update方法:使用模型类.objects.filter().update(),会返回受影响的行数

代码示例:

>>> PeopleInfo.objects.filter(name='牧尊').update(name='洛璃')
1

2.3.删除

删除的两种方法

1)模型类对象delete

>>> person = PeopleInfo.objects.get(name='洛璃')
>>> person.delete()
(1, {'book.PeopleInfo': 1})

 

2)模型类.objects.filter().delete()

>>> BookInfo.objects.filter(name='大主宰').delete()
(1, {'book.BookInfo': 1, 'book.PeopleInfo': 0})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值