Django(16)-ORM基础字段及选项

Django(1)-简介

Django(2)-创建项目及默认项目目录结构介绍

Django(3)-配置文件详解

Django(4)-URL和视图

Django(5)-路由配置实例

Django(6)-请求及响应

Django(7)-Get请求和Post请求

Django(8)-设计模式

Django(9)-模板层简介与入门实例

Django(10)-模板层的变量和标签

Django(11)-模板层的过滤器和继承

Django(12)-url反向解析

Django(13)-静态文件

Django(14)-应用及分布式路由

Django(15)-模型层及ORM介绍

Django(16)-ORM基础字段及选项

Django(17)-ORM创建数据

Django(18)-ORM常用的查询函数详解及实例演示

Django(19)-ORM条件查询

Django(20)-ORM更新操作及实例演示

Django(21)-ORM删除操作及实例演示

Django(22)-ORM中F对象和Q对象

Django(23)-ORM聚合查询和原生数据库操作

Django(24)-admin后台管理设置步骤以及常见样式详解

Django实战技巧(1)-开发测试生产环境配置切换处理技巧

Django实战技巧(2)-git代码仓分支管理技巧

Django实战技巧(3)-项目配置

1、实例:以已存在数据表增加一个字段

  • 在models.py 中的模型类增加一个属性
    在这里插入图片描述

  • 执行数据库迁移命令
    在这里插入图片描述
    在这里插入图片描述

  • 从数据库中查看,可以看到增加属性已生效
    在这里插入图片描述

2、字段类型

  • BooleanField()

    • 数据库类型:tinyint
    • 编程语言种:使用True或者False来表示
    • 在数据库中,使用1或者0来表示具体值
  • CharField()

    • 数据库类型:varchar
    • 注意:必须要指定max_length参数值
  • DateField()

    • 数据库类型:date
    • 作用:表示日期
    • 参数:
      • auto_now:每次保存对象时,自动设置该字段为当前时间(取值True或False)
      • auto_now_add:当对象第一次被创建时自动设置为当前时间(取值True或False)
      • default:设置当前时间(取值:字符串格式如:2021-6-7)
      • 以上三个参数只能多选一
    • 正常情况下,任何一个数据表,都需要创建create_time和update_time两个字段,而且create_time需要将设置auto_now_add为True,update_time字段需要设置auto_now为True
  • DateTimeFiled()

    • 数据库类型:datetime
    • 作用:表示日期
    • 参数:同DateField
  • FloatField()

    • 数据库类型:double
    • 编程语言种和数据库中都使用小数表示值
  • DecimalField()

    • 数据库类型:decimal(x,y)
    • 编程语言中:使用小数表示该列的值
    • 在数据库中:使用小数
    • 参数:
      • max_digits:位数总数,包括小数点后的位数,该值必须大于等于decimal_places的值
      • decimal_places:小数点后的数字数量
    • 注意:凡是跟钱有关的都需要使用这个类型
      r
  • EmailField()

    • 数据库类型:varchar
    • 编程语言和数据库中使用字符串
  • IntegerField()

    • 数据库类型:int
    • 编程语言和数据库中使用整数
  • ImageField()

    • 数据库类型:varchar(100)
    • 作用:在数据库中保存了图片的路径
    • 编程语言和数据库中使用字符串
  • TextField()

    • 数据库类型:longtext
    • 作用:表示不定长的字符数据

3、字段的选项

  • 字段选项,指定创建的列的额外信息

  • 允许出现多个字段选项,多个字段选项之间使用逗号隔开

  • primary_key:

    • 如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数据库不会创建id字段
  • blank

    • 设置为True时,字段可以为空,如果为False时,字段是必须填写的
  • null

    • 如果设置为True,表示该列值允许为空
    • 默认为False,如果此选择为False,建议加入default选项来设置默认值
  • default

    • 设置所在列的默认值,如果字段选项null=False时,建议添加此选项
  • db_index

    • 如果设置为True,表示该列增加索引
  • unique

    • 如果设置为True,表示该字段在数据库中的值必须唯一(不能重复出现)
  • db_column

    • 指定列的名称,如果不指定的话采用属性名作为列名
  • verbose_name

    • 设置此字段在admin界面上的显示名称

如:

name = models.CharField(max_length=30,unique=True,null=False,db_index=True)

4、模型类-Meta类

  • Meta类为内部类,通过Meta类用来为表的属性做一些设置,比如设置表名等
    如下,设置表名为person,而不是使用django自带的规则表名,
from django.db import models

# Create your models here.


class Person(models.Model):
    name=models.CharField("姓名",max_length=50,default='')
    age=models.IntegerField("年龄")
    sex=models.CharField("性别",max_length=20,default='')
    
    class Meta:
        db_table="person"

注意修改表名后也要执行数据库迁移操作
在这里插入图片描述
去mysql数据库后台查看表名,发现表名已经被修改
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/redrose2100/article/details/117674737
今日推荐