Django 之 orm 操作

记录django的一些常用操作

一、建表

首先在models.py文件建立表的字段关系等

# models.py

from django.db import models

# categorys数据表
class Categorys(models.Model):
    category = models.CharField(max_length=64)  # category字段

    g1_count = models.IntegerField(default=0)  # g1_count字段
    g2_count = models.IntegerField(default=0)
    g3_count = models.IntegerField(default=0)
    g4_count = models.IntegerField(default=0)
    g5_count = models.IntegerField(default=0)
    g6_count = models.IntegerField(default=0)  

    # ug = models.ForeignKey('Grade')  #外键


#  grade表
class Grade(models.Model):
    grade = models.CharField(max_length=16)

通过命令行在数据库生成对应表

> cd your_prj_path
> python manage.py makemigrations
> python manage.py migrate

二、表操作

from app import models

1.增

# 添加一条记录
models.Categorys.objects.create(category='分类1',g1_count=10)

2.删

# 删除筛选到的数据
 models.Categorys.objects.filter(id=1).delete()

3.改

# 修改id==3的条目中category字段
models.Categorys.objects.filter(id=3).update(category='新的分类哦')

4.查

# 查询categorys表所有数据
models.Categorys.objects.all() 
# -> [obj,obj,obj]

# 条件查询
models.Categorys.objects.filter(id=1)  # id==1
res = models.Categorys.objects.filter(id__gt=1) # id>1
# -> [obj,obj,obj]
# -> for item in res:
# ->    print(item.category,item.g1_count,item.ug.grade)


# 数据筛选
models.Categorys.objects.filter(id__gt=1).values('id','category','ug__grade ') # 仅保留‘id’、‘category’,'ug__grade'字段,ug__grade 是连表操作,取Grade.grade字段
# -> [dict,dict,dict]
models.Categorys.objects.filter(id__gt=1).values_list('id','category') # 仅保留‘id’、‘category’字段
# -> [(),(),()]

# 条数限制
models.Categorys.objects.all()[0:10] # 取0~9条
models.Categorys.objects.all().first()#第一条

# 排序
models.Categorys.objects.all().order_by('-id') # 按id倒序排序

你可能感兴趣的:(Django 之 orm 操作)