Django 对数据库的增删改查
新增
使用方法:类模型.objects.create
类模型
from django.db import models
# Create your models here.
class Car(models.Model):
user = models.CharField(max_length=200)
plate_number = models.CharField(max_length=20)
def __str__(self):
return f'{self.user} --{self.plate_number}'
请求方法
from django.http import JsonResponse
from django.views.decorators.http import require_http_methods
import json
@require_http_methods(["POST"])
def my_first_request(request):
try:
# 读取并解析 JSON 请求体
data = json.loads(request.body.decode('utf-8'))
user = data.get('user')
plate_number = data.get('plate_number')
# 检查参数是否为空
if not user or not plate_number:
return JsonResponse({'error': 'params not null'}, status=400)
# 创建并保存 Car 实例
Car.objects.create(user=user, plate_number=plate_number)
return JsonResponse({'success': 'Car created successfully'})
except Exception as e:
return JsonResponse({'error': str(e)}, status=500)
修改
save()
同时具备新增和修改功能
保存
Car.save()
是 Django 中的模型实例方法,用于保存或更新数据库中的记录。
在数据库没有这一条情况下或者就是想要新增一条
car = Car(user='张三', plate_number='123ABC')
car.save() # 保存到数据库
更新已有记录
当你修改一个模型实例的属性时,调用 save()
来保存修改:
car = Car.objects.get(id=1) # 获取某条记录
car.plate_number = '456DEF' # 修改属性
car.save() # 保存修改到数据库
查询
获取所有记录:
cars = Car.objects.all() # 返回所有Car对象
根据条件过滤:
cars = Car.objects.filter(user='张三') # 查询用户为张三的所有记录
获取单个记录:
car = Car.objects.get(id=1) # 根据主键 id 查询
获取最新的一条记录:
latest_car = Car.objects.latest('id') # 根据id排序,获取最新一条
删除
删除某条记录
car = Car.objects.get(id=1) # 获取记录
car.delete() # 删除该记录
批量删除:
Car.objects.filter(user='张三').delete() # 删除所有用户为张三的记录