Django的ORM(2)

添加表记录

方法1

# create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象
  book_obj=Book.objects.create(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")

方法2

book_obj=Book(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
book_obj.save()

查询表纪录

查询api------>使用说明

<1> all():                  查询所有结果
<2> filter(**kwargs):       它包含了与所给筛选条件相匹配的对象
<3> get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
<4> exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象
<5> order_by(*field):       对查询结果排序
<6> reverse():              对查询结果反向排序
<8> count():                返回数据库中匹配查询(QuerySet)的对象数量。
<9> first():                返回第一条记录
<10> last():                返回最后一条记录
<11> exists():              如果QuerySet包含数据,就返回True,否则返回False
<12> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
                            model的实例化对象,而是一个可迭代的字典序列
<13> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
<14> distinct():            从返回结果中剔除重复纪录

views.py

from django.shortcuts import render,HttpResponse

# Create your views here.
from  app01.models import Book

def index(request):
    #--------------------添加记录
    #方法1
    #book_obj = Book(id=1,title='python 红宝书',price=100,pub_date='2012-12-12',publish='人民出出版社',state=True)
    #book_obj.save()
    #方法2
    # book_obj=Book.objects.create(title='go',price=100,pub_date='2014-12-12',publish='山东教育出版社',state=True)
    # print(book_obj.title)
    # print(book_obj.price)
    # print(book_obj.pub_date)

    #---------------------查询
    '''
    1、方法的返回值类型   QuerySet
    2、方法的调用者
    :param request:
    :return:
    '''
    # all方法   返回值是一个 QuerySet对象
    #book_list=Book.objects.all()
    # print(book_list)     #[obj1.obj2]
    # for obj  in book_list:
    #     print(obj)
    # print(book_list[1].title)

    #first   和  last 方法
    #book = Book.objects.all().last()
    #print(book)

    #filter()  #条件过滤     返回 QuerySet对象
    # book_list = Book.objects.filter(title='go')
    # print(book_list)

    #get()  有且只有1个时才有意义,返回值 model对象
    # book_list= Book.objects.get(title='go')
    # print(book_list.price)

    #exclude   排除某个属性
    # ret = Book.objects.exclude(title='go')
    # print(ret)

    #order_by    -id   降序
    # ret = Book.objects.all().order_by('id')
    # print(ret)

    #count()   计数
    # ret = Book.objects.all().count()
    # print(ret)

    #  exist()
    # ret = Book.objects.all().exists()
    # print(ret)


    #value
    # ret = Book.objects.all()
    # for i in ret:
    #     print(i.title)
    #   等价于
    # ret = Book.objects.all().values('price')
    # print(ret)
    '''原理
    values:
    temp = []
    for obj in Book.objects.all()
        temp.append({
            'price'=objects.objects
        })
    return temp
    # [{'price': Decimal('100.00')}, {'price': Decimal('100.00')}, {'price': Decimal('100.00')}, {'price': Decimal('100.00')}
    '''

    # values_list   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
    # ret = Book.objects.all().values_list('price')
    # print(ret)

    #distince  去重
    # ret = Book.objects.all().values('price').distinct()
    # print(ret)
    #返回类型


    #模糊查询
    #GT  查询价格大于 99   lt 小于
    ret =Book.objects.filter(price__gt=99,price__lt=101)
    print(ret)
    Book.objects.filter(price__in=[100, 200, 300])
    Book.objects.filter(price__gt=100)
    Book.objects.filter(price__lt=100)
    Book.objects.filter(price__range=[100, 200])
    Book.objects.filter(title__contains="python")
    Book.objects.filter(title__icontains="python")
    Book.objects.filter(title__startswith="py")
    Book.objects.filter(pub_date__year=2012)
    return HttpResponse(r'ok')
11895932.jpg
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 227,488评论 6 531
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,034评论 3 414
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 175,327评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,554评论 1 307
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,337评论 6 404
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,883评论 1 321
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,975评论 3 439
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,114评论 0 286
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,625评论 1 332
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,555评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,737评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,244评论 5 355
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,973评论 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,362评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,615评论 1 280
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,343评论 3 390
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,699评论 2 370

推荐阅读更多精彩内容

  • 模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚...
    riverstation阅读 2,080评论 0 8
  • 此段内容简要来自自强学堂的教程详情请查询自强学堂 一、 后台的运作流程 接收request请求 处理数据 获取请求...
    coder_ben阅读 5,248评论 6 56
  • 全文链接 第一章 创建一个blog应用第二章 使用高级特性来增强你的blog第三章 扩展你的blog应用第四章上 ...
    夜夜月阅读 6,973评论 25 27
  • 自强学堂Django教程 目录 Django是目前最流行的Python Web框架。 一、Django的MTV模式...
    CaiGuangyin阅读 1,169评论 4 3
  • 下午和欣怡一起看了电影,喜剧电影,还好,她还会笑。在外面吃了饭之后回到我的住处,她看起来好了许多,眼光不再一直游移...
    MuqingMuyan阅读 180评论 0 1