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
  • 相关阅读:
    codeforces 540D Bad Luck Island (概率DP)
    Codevs 1205 单词反转(Vector以及如何输出string)
    Codeforces 977D Divide by three, multiply by two(拓扑排序)
    Codeforces 977B Two-gram(stl之string掉进坑)
    HDU 6186 CS Course (连续位运算)
    HDU 1005 Number Sequence(矩阵快速幂,快速幂模板)
    HDU 1004 Let the Balloon Rise(STL初体验之map)
    2018天梯赛、蓝桥杯、(CCPC省赛、邀请赛、ICPC邀请赛)校内选拔赛反思总结!
    Newcoder Wannafly13 B Jxy军训(费马小定理、分数在模意义下的值)
    TCP的可靠传输(依赖流量控制、拥塞控制、连续ARQ)
  • 原文地址:https://www.cnblogs.com/zhang-da/p/14483614.html
Copyright © 2011-2022 走看看