• 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='模块名'

    • 删除这个模块下已经产生的所有的表

    • 重新生成迁移文件

    • 重新迁移

  • 相关阅读:
    Git设置HTTP/HTTPS代理服务器
    队列(Queue)顺序存储C语言实现
    二叉树前序序列和中序序列转为后序序列
    CFileDialog对话框中,如何修改对话框标题
    轻型读写锁 Slim Reader/Writer (SRW) Locks
    PC lint -sem 用法示例
    C# Linq 取得两个列表的交集
    wpf datagrid row的命中测试
    C# Unit Test 备注
    DataGrid 滚动特定的行或者列
  • 原文地址:https://www.cnblogs.com/Py-king/p/10569653.html
Copyright © 2020-2023  润新知