数据的增,删,改,查

数据的增,删,改,查

创建一个汽车模型

#导包
from django.db import models

# 汽车模型
class Car(models.Model):
    # 品牌
    brand=models.CharField(max_length=50)
    # 销量
    number=models.IntegerField()
    
    # 元选项
    class Meta:
        # 重命名
        db_table = '汽车表'

Postman中操作

添加数据: (post)

先在Postman中将数据传递给后端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ct5v1138-1612189308731)(D:\作业\python\P4\笔记\image\day06\添加数据.jpg)]

from .models import *
class demo1(View):
    # 添加数据
    def post(self,request):
        # 从postman中传递数据过来,定义属性获取数据
        brand=request.POST.get('brand')
        number=request.POST.get('number')

        # 创建汽车实例
        car=Car()

        # 给属性/字段赋值
        car.brand=brand
        car.number=number

        # 保存
        car.save()


        return HttpResponse('添加成功')
查找数据:(get)
  • 查询所有数据:all

    语法:模型类名.objects.all()
    	# all 查到的结果为一个列表,列表中为object对象
    例:查询汽车模型类中的所有信息
       car_li = Car.objects.all()
    
  • 条件查询:get

    语法:模型类名.objects.get(字段名='条件')
    	# get 查询结果为对象,若结果不存在,或者存在多个结果就报错,所以 get 查询的结果只有一条
    例:查询汽车模型类中的法拉利信息
        car_li = Car.objects.get(brand='法拉利')
    
  • 过滤(条件)查询:filter

    语法:模型类名.objects.filter(字段名='条件')
    	# filter 查询到的结果为一个列表,可以存在多个结果,列表中为object对象
    例:查询汽车模型类中的所有宝马信息
        car_li = Car.objects.filter(brand='宝马')
    

    filter的方法和使用

    • 查询第几条数据:first

      语法:模型类名.objects.filter(字段名='条件').first(数据序号)
           模型类名.objects.filter(字段名='条件')[数据序号]
              # 注意:first必须要跟在filter后面      first查询到的结果只有一条
      例:查询兰博基尼的第二条属性
         car = Car.objects.filter(brand='兰博基尼').first(2)
      
    • 匹配某个字符:contains

      语法:模型类名.objects.filter(字段名__contains='字符')
      		# contains表示包含,用来进行相似查询,表示只要字段值中有指定字符串就满足条件
      例:查询汽车名称中查询包含“法”字
      	car = Car.objects.filter(brand__contains='法')
      
    • 匹配某个字符:icontains

      用法同contains一样,只不过是忽略大小写
      
    • 匹配开头:startswith

      语法:模型类名.objects.filter(字段名__startswith='字符')
      		# startswith表示以某个字符串开头去匹配查找
      例:查询汽车名称中查询以“兰”字开头的信息
      	car = Car.objects.filter(brand__startswith='兰')
      
    • 集合查询:in

      语法:模型类名.objects.filter(字段名__in=['值1','值2'])
      		# in表示指定一个集合,只要字段值在这个集合内就满足查询条件
      例:查询法拉利和兰博基尼的所有信息
      	car = Car.objects.filter(brand__in=['法拉利','兰博基尼'])
      
    • 根据条件表达式 进行 大于 等于 小于查找

      表达式解释
      lt小于
      gt大于
      lte小于等于
      gte大于等于
      语法:模型类名.objects.filter(字段名__表达式=数值)
      
      例:查询汽车销量大于2000的信息
      	car = Car.objects.filter(number__gt=2000)
      
  • 排序:order_by

    语法:模型类名.objects.all().order_by('字段名')
    	# order_by用来表示 对结果集进行排序。可以是根据一个或多个字段排序,默认是正序,如果要倒	   序可以在字段前加"-"
    例:根据汽车销量进行排序查询
    	car = Car.objects.all().order_by('number')
    
  • 返回指定字段的值:values

    语法:模型类名.objects.all/order_by/filter/().values('字段名1','字段名2')
    	# values 表示只需要返回指定字段的值,不需要整个Model实例
    例:查询表中所有字段
    	car = Car.objects.all().values('brand','number')
    
修改数据:(put)

在修改数据之前需要在前端浏览器上传递数据,作为修改的条件(只能用这个方法!!!)

    def put(self, request):

        # 1. 接收前端传递的数据
        id = request.GET.get('id')

        # 2. 查到这条记录
        car_li = Car.objects.filter(id=id)
        car = car_li[0]
        # 3. 重新赋值
        car.brand = '宝马x5'
        car.num = 8000
        # 4. 保存
        car.save()

        # 先把响应写出来:有请求,一定要有响应
        return HttpResponse('修改成功')
删除数据:(delete)

和修改的一样,都需要在前端传递数据,作为删除条件(只能用这个方法!!!)

def delete(self,request)
	
    # 获取要删除得条件
    id = request.GET.get('id')
    
    # 2. 查到要删除的对象
    car_li = Car.objects.filter(id=id)

    # 3. 删除
    car_li.delete()  # 调用列表的删除方法
    # car_li[0].delete()  # 调用object对象的删除方法

    return HttpResponse('删除成功')

GET.get(‘id’)

# 2. 查到要删除的对象
car_li = Car.objects.filter(id=id)

# 3. 删除
car_li.delete()  # 调用列表的删除方法
# car_li[0].delete()  # 调用object对象的删除方法

return HttpResponse('删除成功')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值