美文网首页django基础
6.models 增删改

6.models 增删改

作者: qy1994 | 来源:发表于2017-10-04 14:46 被阅读0次

为了看清楚 orm与sql语句的映射关系,在settings.py中增加如下的配置信息来实现 简单的输出数据库操作日志到控制台中的功能

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'DEBUG',
        },
    }
}

执行python manage.py shell命令 进行终端数据库操作
首先先导入模型类from hello.models import *

orm常用操作:

  • 增加--create和save方法:
# objects是model默认的管理器
# create方法,是管理器的方法
Author.objects.create(name="张三")
# save方法,是model对象的方法
author = Author()
author.name = "李四"
author.save()
# 有主外键关联的字段既可以以字段名_id的形式添加也可以按照对象的形式添加
    # id的形式添加
    AuthorDetail.objects.create(sex=0, email="110@aa.com", address="福建省", birthday="1993-10-09", author_id=3)
    # 以对象的形式
    author = Author()
    author.name = "李四"
    author.save()
    AuthorDetail.objects.create(sex=1, email="220@aa.com", address="江苏省", birthday="2003-10-09", author=author)
# 多对多关系是一种特殊形式,他会多添加一张关系表,所以添加这种属性也是比较复杂的
    # 先创建除多对多关系外的字段,再调用字段的add方法添加 也行
        book = Book.objects.create(title="python", publisher_id=1, publication_date="2003-10-8")
        author = Author.objects.get(id=1)
        book.authors.add(author)

  • 修改 -- save和update方法
# save方法,get方法也是其中model对象的方法
    author = Author.objects.get(id=1)
    author.name = "jack"
    author.save()
# update方法,是querySet对象的方法
        Publisher.objects.filter(id=1).update(city="南京", website="www.china-new.cn")
  • 查询-- all
    publisher = Publisher.objects.all()
    print(publisher)
# 惰性机制:
     # 注意这里的all方法并不会立即执行数据库查询,而只是返回了一个QuerySet的对象,当使用的时候才会调用QuerySet对象进行查询(比如print)
  • 删除 -- delete
Author.objects.filter(name="李四").delete()
# delete是一种联级查询,即会先删除author 再删除authordetail中的数据,
# 还得删除 book_author表中的数据,即会删除所有有关联关联关系表中的数据

相关文章

  • 6.models 增删改

    为了看清楚 orm与sql语句的映射关系,在settings.py中增加如下的配置信息来实现 简单的输出数据库操作...

  • JavaScript防篡改对象

    preventExtensions:不能增,能删改seal:不能增删,能改freeze:不能增删改 对象属性增删改...

  • mysql的插入语句

    MySQL增删改查之增insert、replace

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • 0812 A

    mongodb 增删改查 增: db.createCollection("name", {options:numb...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • SQL查询结构总结

    SQL 增删改查 对数据库有修改的操作是:增删改 增 insert into 表名 values(); 删 del...

  • Swift 之集合

    数组定义遍历 增/删/改 合并 字典 定义 遍历 增/删/改 合并 一 数组 定义 遍历 增删改 合并 二 字典 ...

  • 增删改

    对于表中的操作,就是增删改查,查内容较多,这里先说增删改。 1.增(insert或者load) 即插入数据,多行插...

  • 2018-03-03

    rails c增删改查 增:user = User.create(name:'Jack', age:'18') 删...

网友评论

    本文标题:6.models 增删改

    本文链接:https://www.haomeiwen.com/subject/wgccyxtx.html