• Django模型(二)


    目录

    项目准备

    4.数据库操作

    1.shell工具

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

    2.1.增加

    2.2.修改

    2.3.删除


    项目准备

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

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

    1. from django.db import models
    2. # Create your models here.
    3. # 准备书籍列表信息的模型类
    4. class BookInfo(models.Model):
    5. # 创建字段,字段类型...
    6. name = models.CharField(max_length=20, verbose_name='名称')
    7. readcount = models.IntegerField(default=0, verbose_name='阅读量')
    8. commentcount = models.IntegerField(default=0, verbose_name='评论量')
    9. class Meta:
    10. db_table = 'bookinfo' # 指明数据库表名
    11. verbose_name = '图书' # 在admin站点中显示的名称
    12. def __str__(self):
    13. """定义每个数据对象的显示信息"""
    14. return self.name
    15. # 准备人物列表信息的模型类
    16. class PeopleInfo(models.Model):
    17. GENDER_CHOICES = (
    18. (0, 'male'),
    19. (1, 'female')
    20. )
    21. name = models.CharField(max_length=20, verbose_name='名称')
    22. gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0, verbose_name='性别')
    23. description = models.CharField(max_length=200, null=True, verbose_name='描述信息')
    24. book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name='图书') # 外键
    25. class Meta:
    26. db_table = 'peopleinfo'
    27. verbose_name = '人物信息'
    28. def __str__(self):
    29. return self.name

    插入信息:

    1. insert into bookinfo(name, readcount,commentcount) values
    2. ('斗罗大陆', 12, 34),
    3. ('斗破苍穹', 36, 40),
    4. ('武动乾坤', 20, 80),
    5. ('牧龙师', 58, 24);
    6. insert into peopleinfo(name, gender, book_id, description) values
    7. ('唐三', 1, 1, '蓝银草'),
    8. ('小舞', 0, 1, '柔骨兔'),
    9. ('小刚大师', 1, 1, '罗三炮'),
    10. ('戴沫白', 1, 1, '邪眸白虎'),
    11. ('竹叶青', 0, 1, '幽冥猫'),
    12. ('萧炎', 1, 2, '斗帝'),
    13. ('药老', 1, 2, '半圣'),
    14. ('风尊者', 1, 2, '斗尊'),
    15. ('美杜莎女王', 0, 2, '斗宗'),
    16. ('林动', 1, 3, '武祖'),
    17. ('绫清竹', 0, 3, '九天太清宫宫主'),
    18. ('林貂', 1, 3, '天妖貂族少族长'),
    19. ('应欢欢', 0, 3, '冰主轮回者'),
    20. ('祝明朗', 1, 4, '牧龙师'),
    21. ('黎云姿', 0, 4, '神凡念力师'),
    22. ('黎星画', 0, 4, '预言师'),
    23. ('南玲纱', 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()方法保存到数据库中。

    示例代码:

    1. >>> from book.models import BookInfo,PeopleInfo
    2. >>> book = BookInfo(
    3. ... name = '大主宰'
    4. ... )
    5. >>> book.save()
    6. >>> book

    数据库中查看:

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

    示例代码:

    1. PeopleInfo.objects.create(
    2. ... name = '牧尘',
    3. ... book = book
    4. ... )

    2.2.修改

    修改更新的两种方法:

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

    代码示例:

    1. >>> person = PeopleInfo.objects.get(name='牧尘')
    2. >>> person.name = '牧尊'
    3. >>> person.save()
    4. >>> person

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

    代码示例:

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

    2.3.删除

    删除的两种方法

    1)模型类对象delete

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

     

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

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

  • 相关阅读:
    训练和测试的loss不下降,并且精度超低
    【spark】第一章——Spark简介及环境配置
    深入浅出PyTorc——进阶训练技巧
    JAVA学习------ConcurrentHashMap实现原理
    TS扩展类型
    有没有好用的视频剪辑软件分享?
    企业级优化
    数据挖掘一般框架
    网页的盒子模型是什么?怎么设置盒子样式
    Java中级面试题及答案(120道Java中级面试题大汇总)
  • 原文地址:https://blog.csdn.net/m0_61491995/article/details/126026762