zoukankan      html  css  js  c++  java
  • ORM常用操作介绍

    一、修改
    update和save方法
    实例:
    1、增加一套作者记录
    >>> from hello.models import*
    >>> Author.objects.create(name='胡大海')
    <Author: Author object>
    >>> AuthorDetail.objects.create(sex=False,email='333@qq.com',address='北京XX',birthday='1988-1-2',author_id=1)
    <AuthorDetail: AuthorDetail object>

    2、增加一条出版社记录
    >>> pub = Publisher()
    >>> pub.name='电子工业出版社'
    >>> pub.address = '成都华阳'
    >>> pub.city = '成都'
    >>> pub.state_province = '四川'
    >>> pub.country = '中国'
    >>> pub.website = 'http://maiziedu.com'
    >>> pub.save()
    >>>
    3、增加一条书籍记录
    >>> book = Book.objects.get(id=1) #获取书籍的对象
    >>> author = Author.objects.get(id=1)#获取作者的对象
    >>> book.authors.add(author) #插入书和作者的关系
    >>>


    objects:models的默认管理器。create是管理器里面的方法
    插入主外键关系的时候,可以用对象的方式,也可以直接以直接关联id的方式
    插入多对多关系的时候要分布操作
    save是model对象的方法,即objects的方法
    update是QuerySet对象的方法

    二、修改
    update和save方法

    实例:
    1、修改id为1的作者的名字为叶良辰,性别改为女
    >>> author.name = '叶良辰'
    >>> author.save()
    >>>
    >>> authordetail = AuthorDetail.objects.get(id=1)
    >>> authordetail.sex
    False
    >>> authordetail.sex=True
    >>> authordetail.save()
    >>> authordetail.sex
    True
    >>>

    2、修改名为"电子工业出版社"的出版社的网址为
    http://www.maiziedu.com,城市为成都

    >>> Publisher.objects.filter(id=1).update(city='重庆',website='http://www.google.com')
    1
    >>>
    >>> Publisher.objects.filter(id=2).update(city='武汉',website='http://www.tmall.
    com')
    1
    >>>


    三、查询(惰性机制)
    1、查询所有的出版社信息
    >>> Publisher.objects.all()
    [<Publisher: 电子工业出版社>, <Publisher: >]
    >>>

    >>> Book.objects.all()
    [<Book: Book object>]
    >>>

    所谓的惰性机制:Publisher.objects.all()只是返回了一个QuerySet(查询结构集对象),并不会马上执行sql,而是当调用QuerySet的时候才执行

    四、删除
    delete方法
    QuerySet对象的方法
    实例:
    1、删除id为1的书籍信息
    >>> Book.objects.filter(id=1).delete()
    (2, {'hello.Book': 1, 'hello.Book_authors': 1})
    >>>
    2、删除出版社城市为成都的记录
    >>> Publisher.objects.filter(city='成都').delete()
    (0, {})
    >>> Publisher.objects.filter(city='重庆').delete()
    (1, {'hello.Publisher': 1})
    >>>

    注意:django中的删除默认是级联删除
    课外思考:
    去官方文档查查,有没有提供批量增加数据的方法

  • 相关阅读:
    [转]oracle 12c 中的分页子句
    display:table; 也可以实现 div 始终和内包的图片大小相同
    mongodb与SQL常见语句对照
    js生成验证码
    javascript 判断空数组
    网络绘制插件
    mongodb中查询返回指定字段
    Mybatis获取插入记录的自增长ID
    mysql 创建索引和删除索引
    Java 中 HashMap 初始化时赋值
  • 原文地址:https://www.cnblogs.com/kindnull/p/8379776.html
Copyright © 2011-2022 走看看