2019.03.21 增删改
上一节是查询 而这一节是增删改
数据库都离不开这几样
这些方法都继承谁的呢 在models中继承的吗 Django.db吗?
过滤器可以查询多个,因此可以操作多个字段
#方法1
    post = Post(title='博客11',created='2017-2-28')  (实例化插入)
    post.save()
#方法2
    Post.objects.create(title='博客12',created='2018-11-11')
    返回值是添加的对象
删除
#方法1
Movie.objects.get(mid='147').delete()
#BINARY不是函数,是类型转换运算符,比较时 区分大小写
DELETE FROM `movie` WHERE `movie`.`mname` LIKE BINARY 'h%'
* 方法2 (删除所有包含博客名字的帖子)
Post.objects.filter(title__contains='博客').delete()
修改
#方法1 (更新的是所有的字段)
post = Post.objects.first()
post.title='更新了'
post.save()
UPDATE `post_post` SET `title` = '更新了', `created` = '2017-11-27' WHERE `post_post`.`id` = 26
#方法2(只更新修改的字段),推荐使用
Post.objects.filter(id=26).update(title='又更新了')
UPDATE `post_post` SET `title` = '又更新了' WHERE `post_post`.`id` = 26
本节操作是连接自己的数据库 发现自己的环境也都还可以。然后就有去复习了一遍
如何登入后台站点的步骤和执行的代码
15.创建表单
django所有的数据模型都继承自models.Model
- 
django所有的数据模型都继承自models.Model
 - 
CharField max_length (输入框)
 - 
TextField 没有长度限制的字符串 (文本域)
 - 
DateField 日期
 - 
DateTimeField 日期+时间
 - 
BooleanField 真假
 - 
NullBooleanField Null,真假,
 - 
Integer 整数
 - 
PositiveIntegerField 正整数
 - 
DecimalField max_digits(几位数) decimal_places(小数点后保留几位)
 - 
ImageField 图片 依赖于 Pillow(处理图片) upload_to='upload' 指定文件上传到目录
 - 
FileField(ImageField继承FileField)
 - 
AutoField
 - 
ForeignKey 1:n
 - 
ManyToManyField n:n
 - 
EmailField 邮箱
 - 
UUIDField 重复的概率非常低基本可以忽略,全世界都不一样的标示,uuid的产生和服务器的环境有关(CPU,网关,) 唯一性的标示,用户模块,订单号
 - 
不同的字段在后台对应不同的html的组件
 
ImageField 依赖于Pillow组件(python库)
常用属性
- 
unique 标示这个字段唯一
 - 
default 默认的意思 ,(如果不写的话就使用默认的值)
 - 
null=True 允许字段为null,(允许数据库为null)数据库层面的
 - 
blank=True 表单阶段的,admin后台的
 - 
auto_now 针对时间的,自动调整当前,(当修改条目的时候,这个时间会自动更新),每次修改都会更新 (修改,保存的时候才会生效,)
 - 
auto_now_add 针对时间的,只添加一次,(创建的时间)
 
重点理解属性
- 
表单层面的东西(js判断字段是否是" "),不需要重写迁移数据库
 - 
unique=True 可以任何字段
 - 
default 数据库+表单层面(同时生效)
 - 
auto_now_add 创建的时候会自动的添加时间(数据库),(后台表单层面找不到这个字段)
 - 
auto_now 每次修改的时候自动更新,(数据库+表单层面)
 - 
null=True 数据库层面,允许为Null,不是空字符串
 - 
blank=True 表单层面的,后台选填(表单项元素可以为空,表单不会进行非空校验)
 
uuid
        uuid.uuid4().get_hex()
django迁移失败如何处理
- 
删除模块下(问题模块)的所有的迁移记录
 - 
删除数据库中django_migrations中问题模块的迁移记录
DELETE FROM django_migrations WHERE app='模块名'
 - 
删除这个模块下已经产生的所有的表
 - 
重新生成迁移文件
 - 
重新迁移
 
                    
                
                
            
        
浙公网安备 33010602011771号