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数据库后台查看表名,发现表名已经被修改