zoukankan      html  css  js  c++  java
  • django中的orm

    from django.db import models

    # Create your models here.
    """
    1.定义模型类
    2.模型迁移
    2.1 先生成迁移文件(不会在数据库中生成表,只会创建一个 数据表和模型的对应关系)
    python manage.py makemigratons
    2.2 再迁移(会在数据库中生成表)
    python manage.py migrate
    3.操作数据库

    ① 在哪里定义模型
    ② 模型继承自谁就可以
    ③ ORM对应的关系
    表-->类
    字段-->属性
    """
    """
    1. ORM
    表 --> 类
    字段 --> 属性

    2. 模型类需要继承自models.Model

    3. 模型类会自动为我们添加(生成)一个主键

    4. 属性名=属性类型(选项)

    属性名: 不要使用 python,mysql关键字
    不要使用 连续的下划线(__)
    属性类型: 和mysql的类型类似的
    选项: charfiled 必须设置 max_length
    varchar(M)

    null 是否为空
    unique 唯一
    default 设置默认值
    verbose_name 主要是 admin后台显示
    """
    """
    书籍表:
    id,name,pub_date,readcount,commentcount,is_delete
    """


    class BookInfo(models.Model):
    # 属性名=属性类型(选项)
    name = models.CharField(max_length=10, unique=True, verbose_name='名字')
    # 发布日期
    pub_date = models.DateField(null=True)
    # 阅读量
    readcount = models.IntegerField(default=0)
    # 评论量
    commentcount = models.IntegerField(default=0)
    # 是否逻辑删除
    is_delete = models.BooleanField(default=False)

    # django 自动为我们添加了一个属性 这个属性就可以通过 书籍查询人物信息
    # peopleinfo_set

    class Meta:
    # 改表名
    db_table = 'bookinfo'
    # 修改后台admin的显示信息的配置
    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='描述信息')

    # 一个黑帮老大 n个小弟 1:n
    # 黑帮老大被判死刑
    # 小弟: 1. 劫狱 不让老大死
    # 2. 小弟自己混
    # 3. 老大死 小弟跟着死

    # 书籍: 人物 1:n
    # 西游记: 孙悟空,白骨精
    # on_delete
    book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name='图书') # 外键
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

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

    def __str__(self):
    return self.name
  • 相关阅读:
    MCS-51系列单片机和MCS-52系列单片机有何异同
    51单片机指令表
    ROM、PROM、EPROM、EEPROM、Flash ROM分别指什么?
    用最简单的办法轻松区分无源晶振和有源晶振
    CE310A
    夏普sharp复印机安装视频及教导
    SHARP AR-2048D/2348D
    SHARP 加粉1
    SHARP 加粉
    SQL SERVER BOOK
  • 原文地址:https://www.cnblogs.com/zhang-da/p/14483614.html
Copyright © 2011-2022 走看看