Django 对数据库的增删改查

新增

使用方法:类模型.objects.create

类模型

python 复制代码
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}'

请求方法

python 复制代码
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 中的模型实例方法,用于保存或更新数据库中的记录。

在数据库没有这一条情况下或者就是想要新增一条

python 复制代码
car = Car(user='张三', plate_number='123ABC')
car.save()  # 保存到数据库

更新已有记录

当你修改一个模型实例的属性时,调用 save() 来保存修改:

python 复制代码
car = Car.objects.get(id=1)  # 获取某条记录
car.plate_number = '456DEF'  # 修改属性
car.save()  # 保存修改到数据库

查询

获取所有记录

python 复制代码
cars = Car.objects.all()  # 返回所有Car对象

根据条件过滤

python 复制代码
cars = Car.objects.filter(user='张三')  # 查询用户为张三的所有记录

获取单个记录

python 复制代码
car = Car.objects.get(id=1)  # 根据主键 id 查询

获取最新的一条记录

python 复制代码
latest_car = Car.objects.latest('id')  # 根据id排序,获取最新一条

删除

删除某条记录

python 复制代码
car = Car.objects.get(id=1)  # 获取记录
car.delete()  # 删除该记录

批量删除

python 复制代码
Car.objects.filter(user='张三').delete()  # 删除所有用户为张三的记录
相关推荐
Blossom.1188 分钟前
从“能写”到“能干活”:大模型工具调用(Function-Calling)的工程化落地指南
数据库·人工智能·python·深度学习·机器学习·计算机视觉·oracle
麦聪聊数据12 分钟前
如何使用 QuickAPI 快速连接 MySQL 数据库并发布 RESTful API
数据库·sql·mysql·restful·数据服务
shallwe小威14 分钟前
SpringBoot集成ElasticSearch
数据库·spring boot·elasticsearch
蒋星熠26 分钟前
破壁者指南:内网穿透技术的深度解构与实战方法
网络·数据库·redis·python·websocket·网络协议·udp
扬帆起航131 小时前
亚马逊新品推广破局指南:从手动试错到智能闭环的系统化路径
大数据·数据库·人工智能
嘻嘻哈哈曹先生1 小时前
Oracle数据库
数据库·oracle
Q_Q19632884751 小时前
python+springboot+uniapp微信小程序题库系统 在线答题 题目分类 错题本管理 学习记录查询系统
spring boot·python·django·uni-app·node.js·php
Run Freely9372 小时前
MySQL 数据库_01
数据库·mysql
小朋友,你是否有很多问号?2 小时前
mac本地安装mysql
数据库·mysql
安岁的笔记本2 小时前
Flask/Django 生产部署:Gunicorn vs Nginx,Windows 与 Linux 实战指引
django·flask·gunicorn