django---orm---总结---“一对一”---“一对多”---“多对多”---“增删改查”

单表的增删改查

-----   增加2种方式

方法一:

models.Teacher.objects.create(tname="李老师")

方法二:

obj = models.Teacher(tname="王老师")
obj.save()

-----   查询

1、获取所有的值

obj = models.Teacher.objects.all()

print(obj)

<QuerySet [<Teacher: 张老师>, <Teacher: 张老师>, <Teacher: 李老师>, <Teacher: 王老师>]>

2、获取第一个值

obj = models.Teacher.objects.first()

print(obj)

张老师

3、获取最后一值

obj = models.Teacher.objects.last()

print(obj)

王老师

4、查询任意一个

obj = models.Teacher.objects.filter(id=3)

print(obj)

<QuerySet [<Teacher: 李老师>]>

5、查询id大于2的老师

obj = models.Teacher.objects.filter(id__gt=2)

print(obj)

<QuerySet [<Teacher: 李老师>, <Teacher: 王老师>]>

6、查询id大于2的第一个老师

obj = models.Teacher.objects.filter(id__gt=2).first()

print(obj)

李老师

-----   修改

models.Teacher.objects.filter(id=3).update(tname="wangsi")

-----   删除

models.Teacher.objects.filter(id=3).delete()

view.py

from django.shortcuts import render,HttpResponse,redirect
from ormapp  import models
def index(request):
    #增加2种方法
    # models.Teacher.objects.create(tname="李老师")

    # obj = models.Teacher(tname="王老师")
    # obj.save()

    #查询
    # obj = models.Teacher.objects.all()  获取所有
    # obj = models.Teacher.objects.first()  获取第一个
    # obj = models.Teacher.objects.last()  获取最后一个
    # obj = models.Teacher.objects.filter(id=3)  查询任意一个
    # obj = models.Teacher.objects.filter(id__gt=2) 查询id大于2的老师
    # obj = models.Teacher.objects.filter(id__gt=2).first() 查询id大于2的第一个老师
    models.Teacher.objects.filter(id=3).update(tname="wangsi")
    models.Teacher.objects.filter(id=3).delete()
    return HttpResponse("填加成功")

models.py

from django.db import models

class Teacher(models.Model):
    tname = models.CharField(max_length=32)

    def __str__(self):
        return self.tname


class Classes(models.Model):
    title = models.CharField(max_length=32)
    ct = models.ManyToManyField("Teacher")

    def __str__(self):
        return self.name

class student(models.Model):
    name = models.CharField(max_length=32)
    age = models.BooleanField(default='')
    sc = models.ForeignKey(Classes,on_delete=True)

    """定义每个数据对象的显示信息"""
    def __str__(self):
        return self.name

urls.py

"""
from django.contrib import admin
from django.urls import path
from ormapp import views

urlpatterns = [
    path('index/', views.index),
]

一对多表的增删改查

多对多表的增删改查




猜你喜欢

转载自www.cnblogs.com/ljf520hj/p/11976146.html