zoukankan      html  css  js  c++  java
  • ORM模型类

    ORM模型类

    一:编写模型类

    单表

    from django.db import models
    
    # Create your models here.
    class Student(models.Model):
        # 自增字段,生成int类型,且为主键,自增主键默认会给你加,你可以不写
        id = models.AutoField(primary_key=True)
        # 必须指定max_length
        name = models.CharField(max_length=32)
        
        

    多表

    from django.db import models
    
    # Create your models here.
    class Student(models.Model):
        # 自增字段,生成int类型,且为主键
        id = models.AutoField(primary_key=True)
        # 必须指定max_length
        name = models.CharField(max_length=32)
        
        sex = models.CharField(max_length=2)
    
        class_room = models.ForeignKey("Classroom", null=True)  # 创建外键
    
    class Classroom(models.Model):
        name = models.CharField(max_length=32)  
    

      

    二:注册app

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        "classes"
    ]
    

     发现有许多的app,那么是默认的app,他们里面也同样有models.py文件

    三:数据库迁移

    1.python manage.py makemigrations   提前将创建数据表的过程记录下来,相当于备份

    2.python manage.py  migrate  将刚才记录的操作过程到MySQL数据库里面执行一遍,就会生成表了。

    自定义表上面的是权限表,每个app都有个后台登陆页面,让你可以在web页面上对数据进行操作,不需要操作navicat

    下面的表是,记录登陆日志,文本类型,迁移记录,django_session以后看,很有用。

    四:修改表

    修改模型类就可以了,例如添加字段,删除字段,修改字段类型,设置默认值等等。

    新增列的时候注意

      新增一列时,表中是没有数据的,此时django不知道你想填充什么数据。

    选择1后输入一个默认值,然后执行迁移命令就可以了。

    选择2就会退出,需要你在models.py文件中,用代码指定默认值,或者用null填充。

    如果可以为空,那么sex=models.CharField(null=True)表示可以为空,那么添加这一列,就会用null全部填充。

    还可以指定默认值例如为1

    sex=models.CharField(null=True,default=1) 

      

    看十遍不如自己写一遍!巩固基础,纵横开拓!
  • 相关阅读:
    Mysql密码操作
    最长公共子串(2017蓝桥杯省赛)
    一和零(leetcode)
    leetcode 235周赛
    袋子里最少数目的球(leetcode)
    第七周课后作业
    第四周jsp作业
    3.10
    3.4课堂练习
    DS博客作业05-查找批改
  • 原文地址:https://www.cnblogs.com/gyxpy/p/13865265.html
Copyright © 2011-2022 走看看