一,通过makemigrations,migrate来修改数据,
1.Django的ORM支持修改表结构,修改完以后,执行
python manage.py makemigrations
python manage.py migrate
这两句,就会看到更新了。超过长度的数据就会丢了。
2.给数据库增加一列,
此时会有错误提示,提示需要输入值。因为创建这行的时候没有注明null=False.
至此数据库就已经更新了。
或者在添加的时候,指定为空也是可以的。
gender=models.CharField(max_length=60,null=True)
python manage.py makemigrations
python manage.py migrate
注释掉这一句的话,#gender=models.CharField(max_length=60,null=True),执行
python manage.py makemigrations
python manage.py migrate
最后一列就被删除掉了。
每做完1个操作,都必须执行下列两句才能生效:
python manage.py makemigrations
python manage.py migrate
二,数据库中的数据类型
2.1 基本的数据库中的数据类型:字符串,数字,时间,二进制。CharField,URLFiled,EmailField的作用是用来给django的admin做验证的。对数据库的普通用户数据是不起作用的。
CharField 字符串
URLField 也是字符串类型
email=models.EmailField(max_length=19) 也是字符串类型
2.2 测试EmailField的功能,给Django的admin做格式验证。对表中的内容是没有做限制的。
先新增一列,增加完了执行那2句才能生效。
2.3 添加程序,有了admin后台管理
2.4增加上对应关系
2.5 运行起来,现在就可以登录后台管理页面了。
2.6 创建超级用户,然后登录
2.7 用root, root!23456登录
URL格式验证 test=models.URLField(max_length=19,null=True)
IP格式验证 test=models.GenericIPAddressField() ipv1/ipv6都适用。
三,
3.1 创建了一个自增的列,AutoField代表是自增列。MySQL表里面只能有1个自增列,那么默认的自增id列就不出现了。现在表里面只有自己定义的uid 和 caption两列。
uid=models.AutoField(primary_key=True)
四,本节笔记
1,根据类自动创建数据库表
#app下的models.py
python manage.py makemigrations
python manage.py migrate
字段:
字符串类型
数字
时间
二进制
自增(primary_key=True)