当前位置:网站首页>ORM--数据库增删改查操作逻辑
ORM--数据库增删改查操作逻辑
2022-07-07 07:17:00 【chuntian_tester】
1.数据获取逻辑
1.1 获取多条数据


1.2 获取单条数据



2.创建数据逻辑


3.修改数据逻辑
3.1 修改前的数据

3.2 修改


3.3 修改后

4.删除数据逻辑
删除表中数据时,从表模型若定义外键on_delete=models.CASCADE属性,则从表中的关联
数据也会被删除。


以上示例代码:
# /projects/views.py
import json
from django.http import HttpResponse, JsonResponse
# Create your views here.
# 子应用视图
from django.views import View
from projects import models
class ProjectsView(View):
"""
类视图
:param View: 继承自from django.views import View
:return: HttpResponse对象
"""
def get(self, request):
# 查询所有项目信息
# GET /projects/
projects_list = []
qs = models.Projects.objects.all()
for item in qs:
projects_list.append(
{
'id': item.id,
'name': item.full_name,
'leader': item.leader,
'create_time': item.create_time,
'update_time': item.update_time,
}
)
return JsonResponse(projects_list, safe=False)
def post(self, request):
# 新建项目
# POST /projects/ json格式参数
python_data = json.loads(request.body)
pro_obj = models.Projects.objects.create(full_name=python_data['name'], leader=python_data['leader'],
is_execute=python_data['is_execute'], desc=python_data['desc'])
result = {
'full_name': pro_obj.full_name,
'leader': pro_obj.leader,
'desc': pro_obj.desc,
'msg': '创建成功'
}
return JsonResponse(result, safe=False, status=203)
class ProjectDetailView(View):
def get(self, request, pk):
# 查询指定项目
# GET /projects/<int:pk>/
pro_obj = models.Projects.objects.get(id=pk)
result = {
'id': pro_obj.id,
'name': pro_obj.full_name,
'leader': pro_obj.leader,
'create_time': pro_obj.create_time,
'update_time': pro_obj.update_time,
}
return JsonResponse(result, status=203)
def put(self, request, pk):
# 修改项目
# PUT /projects/<int:pk>/ json格式参数
python_data = json.loads(request.body)
count = models.Projects.objects.filter(id=pk).update(full_name=python_data['name'],
leader=python_data['leader'])
result = {
'data': python_data,
'msg': '更新成功',
'count': count,
}
return JsonResponse(result, status=203)
def delete(self, request, pk):
# 删除项目
# DELETE /projects/<int:pk>
status = models.Projects.objects.filter(id=pk).delete()
result = {
'msg': f'删除{pk}成功',
'count': status,
}
return JsonResponse(result, safe=False, status=203)
边栏推荐
- 根据热门面试题分析Android事件分发机制(二)---事件冲突分析处理
- Hcip first day notes sorting
- 字节跳动 Kitex 在森马电商场景的落地实践
- 小程序滑动、点击切换简洁UI
- Main (argc, *argv[]) details
- 哈夫曼编码压缩文件
- Codeforces - 1324d pair of topics
- Switching value signal anti shake FB of PLC signal processing series
- CentOS installs JDK1.8 and mysql5 and 8 (the same command 58 in the second installation mode is common, opening access rights and changing passwords)
- Esp8266 uses TF card and reads and writes data (based on Arduino)
猜你喜欢

小程序滑动、点击切换简洁UI

AI moves from perception to intelligent cognition

Win10安装VS2015

基础篇:带你从头到尾玩转注解

一大波开源小抄来袭
![[bw16 application] Anxin can realize mqtt communication with bw16 module / development board at instruction](/img/7f/d0917366c68865222154d82b9e7b40.png)
[bw16 application] Anxin can realize mqtt communication with bw16 module / development board at instruction

Detailed explanation of diffusion model

【BW16 应用篇】安信可BW16模组/开发板AT指令实现MQTT通讯

Flex flexible layout

小程序实现页面多级来回切换支持滑动和点击操作
随机推荐
如何成为一名高级数字 IC 设计工程师(5-2)理论篇:ULP 低功耗设计技术精讲(上)
基于智慧城市与储住分离数字家居模式垃圾处理方法
Dynamics 365online applicationuser creation method change
Detailed explanation of diffusion model
EXT2 file system
洛谷P2482 [SDOI2010]猪国杀
第一讲:鸡蛋的硬度
有没有大佬帮忙看看这个报错,有啥排查思路,oracle cdc 2.2.1 flink 1.14.4
[4g/5g/6g topic foundation-146]: Interpretation of white paper on 6G overall vision and potential key technologies-1-overall vision
如何成为一名高级数字 IC 设计工程师(5-3)理论篇:ULP 低功耗设计技术精讲(下)
Gym - 102219j kitchen plates (violent or topological sequence)
能源路由器入门必读:面向能源互联网的架构和功能
Internship log - day07
Can flycdc use SqlClient to specify mysqlbinlog ID to execute tasks
Gym - 102219J Kitchen Plates(暴力或拓扑序列)
2016 CCPC Hangzhou Onsite
Niuke - Huawei question bank (61~70)
C# 初始化程序时查看初始化到哪里了示例
PLC信号处理系列之开关量信号防抖FB
农牧业未来发展蓝图--垂直农业+人造肉