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中的删除默认是级联删除
    课外思考:
    去官方文档查查,有没有提供批量增加数据的方法

  • 相关阅读:
    正则表达式
    eclipse python开发环境搭建
    python中的构造函数和析构函数
    socket网络编程中的同步,异步,阻塞式,非阻塞式,有何联系与区别?
    Render和template?
    什么是MemCache
    python下 help()使用方法
    Tornado模块分类和各模块之间的关系
    把python项目部署到centos里
    Jquery对回复者添加匿名评论选项
  • 原文地址:https://www.cnblogs.com/kindnull/p/8379776.html
Copyright © 2011-2022 走看看