django ORM常用基本操作

常用基本操作

models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs

obj = models.Tb1(c1='xx', c2='oo')

obj.save()

models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议)

models.Tb1.objects.all() # 获取全部

models.Tb1.objects.filter(name='seven') # 获取指定条件的数据

models.Tb1.objects.exclude(name='seven') # 获取指定条件的数据

models.Tb1.objects.filter(name='seven').delete() # 删除指定条件的数据

models.Tb1.objects.filter(name='seven').update(gender='0') # 将指定条件的数据更新,均支持 **kwargs

obj = models.Tb1.objects.get(id=1)

obj.c1 = '35445'

obj.save() # 修改单条数据

查询简单操作

获取个数

    models.Tb1.objects.filter(name='seven').count()

大于,小于

    models.Tb1.objects.filter(id__gt=1) # 获取id大于1的值

    models.Tb1.objects.filter(id__gte=1) # 获取id大于等于1的值

models.Tb1.objects.filter(id__lt=10) # 获取id小于10的值

    models.Tb1.objects.filter(id__lte=10) # 获取id小于10的值

models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值

in

    models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据

    models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in

isnull

    Entry.objects.filter(pub_date__isnull=True)

contains

    models.Tb1.objects.filter(name__contains="ven")

    models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感

     models.Tb1.objects.exclude(name__icontains="ven")

range

    models.Tb1.objects.filter(id__range=[1, 2]) # 范围bettwen and

order by

    models.Tb1.objects.filter(name='seven').order_by('id') # asc

    models.Tb1.objects.filter(name='seven').order_by('-id') # desc

limit 、offset

    models.Tb1.objects.all()[10:20]

regex正则匹配,iregex 不区分大小写

    Entry.objects.get(title__regex=r'^(An?|The) +')

    Entry.objects.get(title__iregex=r'^(an?|the) +')

执行原生SQL

    from django.db import connection, connections cursor = connection.cursor()

    django的settings中的db配置 ' default',指定数据库

    cursor.execute("""SELECT * from auth_user where id = %s""", [1])

    row = cursor.fetchone()

    2 .extra

        Entry.objects.extra(select={'new_id': "select id from tb where id > %s"}, select_params=(1,), order_by=['-nid'])

    3 . raw

        name_map = {'a':'A','b':'B'}

        models.UserInfo.objects.raw('select * from xxxx',translations=name_map)

猜你喜欢

转载自blog.csdn.net/qq_32502511/article/details/80414933
今日推荐