django之數據庫表的單表查詢


添加表記錄

對於單表有兩種方式

#添加數據的兩種方式
#方式一:實例化表的對象 就是一條記錄
student_obj = models.Student(name="zzp",course="python",birth="2019-9-19",grade=80)
student_obj.save()

#方式二
models.Student.objects.create(name="zzp",course="python",birth="2019-9-19",grade=80)

查詢表記錄

查詢相關API

# 查詢相關API
    # 1、all():查看所有
    student_obj = models.Student.objects.all()
    print(student_obj)  #打印的結果是QuerySet集合
    # 2、filter():可以實現且關系,但是或關系需要借助Q查詢實現。。。
    #              查不到的時候不會報錯
    print(models.Student.objects.filter(name="Frank"))  #查看名字是Frank的
    print(models.Student.objects.filter(name="Frank",fenshu=80))  #查看名字是Frank的並且分數是80的
    # 3、get():如果找不到就會報錯,如果有多個值,也會報錯,只能拿有一個值的
    print(models.Student.objects.get(name="Frank"))  #拿到的是model對象
    print(models.Student.objects.get(nid=2))  #拿到的是model對象
    # 4、exclude():排除條件
    print( models.Student.objects.exclude(name="海東")) #查看除了名字是海東的信息
    # 5、values():是QuerySet的一個方法 (吧對象轉換成字典的形式了,)
    print(models.Student.objects.filter(name="海東").values("nid","course")) #查看名字為海東的編號和課程
    #打印結果:<QuerySet [{'nid': 2, 'course': 'python'}, {'nid': 24, 'course': 'python'}]>
    # 6、values_list():是queryset的一個方法 (吧對象轉成元組的形式了)
    print(models.Student.objects.filter(name="海東").values_list("nid", "course"))
    #打印結果:< QuerySet[(2, 'python'), (24, 'python')] >
    # 7、order_by():排序
    print(models.Student.objects.all().order_by("fenshu"))
    # 8、reverse():倒序
    print(models.Student.objects.all().reverse())
    # 9、distinct():去重(只要結果里面有重復的)
    print(models.Student.objects.filter(course="python").values("fenshu").distinct())
    # 10、count():查看有幾條記錄
    print(models.Student.objects.filter(name="海東").count())

    # 11、first()
    # 12、last()
    return render(request,"test.html",{"student_obj":student_obj})
    # 13、esits:查看有沒有記錄,如果有返回True,沒有返回False
        #         並不需要判斷所有的數據,
        # if models.Book.objects.all().exists()

基於雙下划線的查詢

#大於  小於  大於等於  小於等於
filter(price__gt='90')
filter(price__lt = '90')
filter(price__gte='90')
filter(price__lte='90')

#存在與某幾個條件中
filter(price__in=['11','22',''33])

#在某個范圍內
filter(price__range=[50,90])

#模糊查詢
filter(title__contains='西')  #查詢標題有西這個字的
filter(title__icontains='P')  # icontains對於大小寫不敏感

#以什么開頭以什么結尾
startswith,istartswith, endswith, isendswith 

#按年查詢 按月查詢
filter(create_time__year='2017')
filter(create_time__month='9')

 修改表記錄

#先找出對象,然后通過對象點語法修改屬性,后調用對象保存方法
author_obj = Author.objects.get(id=5)
author_obj.name = 'tenglan'
author.save()

#直接使用update()方法  QuerySet()對象的方法
Publisher.objects.filter(id=2).update(name='American publisher')

 

刪除表記錄

刪除方法就是delete().它運行時立即刪除對象而不返回任何值。例如:e.delete()

#使用 QuerySet()對象方法delete()刪除  ,此刪除是將QuerySet所有對象刪除
models.Student.objects.filter(nid=4).delete()

#也可以找到其中一個對象,用對象點方法
user_obj = models.User.objects.filter().first()
user_obj.delete()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM