Django-ORM book notes

1.  # 原生数据库的查询语句
>>> queryset = Event.objects.all()
>>> str(queryset.query)

2.  # 查找 xx 或者 yy ,“或”关系查询
queryset = User.objects.filter(
        first_name__startswith='R'
    ) | User.objects.filter(
    last_name__startswith='D'
)
3. # 效果是一样的 下面的区别在于 | & 
from django.db.models import Q 
qs = User.objects.filter(Q(first_name__startswith='R')|Q(last_name__startswith='D'))
qs = User.objects.filter(Q(first_name__startswith='R')& Q(last_name__startswith='D'))

4.“非”关系
queryset = User.objects.filter(~Q(id__lt=5)) # not, 

5.# 数据表 联结组合,加的关系
q1.union(q2)    
The union operation only works: same fields and datatypes

6. 只查需要的部分,减轻数据库的压力,values(),也可以用only()<多给一个id>
User.objects.filter(
    first_name__startswith='R'
).values('first_name', 'last_name')

7.如果要查第几个的话:
user = User.objects.order_by('-last_login')[1]

8. aggregated,汇总数据,处理数据
from django.db.models import Avg, Max, Min, Sum, Count
User.objects.all().aggregate(Avg('id'))

9. bulk_create([]) 一次创建多条数据

10. 删除所有的条目
Category.objects.all().delete()

11. 把已有数据库转为Django的模型
python manage.py inspectdb > models.py

12. uuid的正确用法:
import uuid
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

13. 使用多个数据库(但愿用不到这个方法):
。。。

你可能感兴趣的:(Django-ORM book notes)