美文网首页
Django ORM-2MODEL设置

Django ORM-2MODEL设置

作者: 足__迹 | 来源:发表于2019-10-11 02:34 被阅读0次

    数据库模型

    - 应用下的/models.py 模块
    
    创建模型类
    # 1.每一个应用下的数据库模型类,需要在当前应用下的文件中定义
    # 2. 一个数据库模型相当与一个数据表
    # 3. 一个类属性相当与数据表中的一个字段
    # 4.默认会创建一个会自动递增的ID主键
    # 5.一个数据库的模型类必须继承model或者model中的子类
    # 6. 默认创建的数据库名为,应用名小写_数据库模型类名小写
    class Person(models.Model):
    
      '''
       继承models中的基类
       创建Person 类
      '''
      id = models.AutoField(primary_key=True) #primary_key为True 代表递增 ,本行默认创建可略
      first_name = models.CharField(max_length=30)  #
      last_name = models.CharField(max_length=30)
    
    
    
    创建类属性并重置表名
    class Project(models.Model):
         """
          verbose_name 别名用于设置更人性化的字段名
          max_length 字段最大长度
          unique 用于设置当前字段是否唯一 , 默认False
          help_text 设置api文档中的中文名称
          blank  设置前端用户可以不传  default 默认值
          null 设置数据库中字段允许为空
    
         """
         name = models.CharField(verbose_name='项目名称' , max_length=200,unique=True,help_text='项目名称')
         leader = models.CharField(verbose_name='负责人', max_length=50,  help_text='负责人')
         tester = models.CharField(verbose_name=' 测试人员', max_length=50,  help_text='测试人员')
         programer = models.CharField(verbose_name='开发人员', max_length=200, help_text='开发人员')
         publish_app = models.CharField(verbose_name='发布应用', max_length=200,  help_text='发布应用')
         desc = models.TextField(verbose_name='简要描述',  help_text='发布应用',blank=True,default='',null=True)
         # models.IntegerField(choices=[])) 限定传入信息为choices中的内容
    
         class Meta:
              #定义子类,用于设置当前数据库模型的元数据信息
              db_table = 'ta_project' #设置表名
              verbose_name = '项目'  #会在andmin站点中,显示一个更人性的表名
              verbose_name_plural = '项目'
    
    

    创建关联数据的模型类

    class Project2s(models.Model):
        name = models.CharField(verbose_name='接口名称', max_length=200, unique=True, help_text='接口名称')
        tester = models.CharField(verbose_name=' 测试人员', max_length=50, help_text='测试人员')
        desc = models.TextField(verbose_name='简要描述', help_text='发布应用', blank=True, default='', null=True)
        # 第一个参数为关联模型路径(应用名。模型类)或者模型类
        # 第二个参数设置的是,父表删除之后,该字段的处理方式
        # CASCADE代表子表会被删除 SET_NULL 子表设置为空 PROJECT 父表删除会报错 SET_DEFAULI 设置为空
        project = models.ForeignKey('Project.Projects', on_delete=models.CASCADE, verbose_name='所属项目', help_text='所属项目')
    
        # 定义子类,用于设置当前数据库模型的元数据信息
        class Meta:
            """
            db_table .设置表名
            verbose_name 会在andmin站点中,显示一个更人性的表名
            """
            db_table = 'ta_project2s'
            verbose_name = '项目'
            verbose_name_plural = '项目'
    

    数据迁移

    • 使用Pycharm

      1、点击 image.png
      2、输入 makemigrations (后面可指定应用名,不输入默认全部应用 )
      image.png

      生成数据库迁移脚本


      image.png

    3, 输入


    image.png

    4、完成


    image.png

    相关文章

      网友评论

          本文标题:Django ORM-2MODEL设置

          本文链接:https://www.haomeiwen.com/subject/sgngpctx.html