当前位置:网站首页>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)
边栏推荐
- Liunx command
- Esp8266 uses TF card and reads and writes data (based on Arduino)
- Flinkcdc failed to collect Oracle in the snapshot stage. How do you adjust this?
- [Frida practice] "one line" code teaches you to obtain all Lua scripts in wegame platform
- 如何成为一名高级数字 IC 设计工程师(5-2)理论篇:ULP 低功耗设计技术精讲(上)
- 2016 CCPC Hangzhou Onsite
- iNFTnews | 时尚品牌将以什么方式进入元宇宙?
- # Arthas 简单使用说明
- Internship log - day07
- 第一讲:寻找矩阵的极小值
猜你喜欢
[4G/5G/6G专题基础-147]: 6G总体愿景与潜在关键技术白皮书解读-2-6G发展的宏观驱动力
【frida实战】“一行”代码教你获取WeGame平台中所有的lua脚本
Diffusion模型详解
字节跳动 Kitex 在森马电商场景的落地实践
喜马拉雅网页版每次暂停后弹窗推荐下载客户端解决办法
H5 web player easyplayer How does JS realize live video real-time recording?
【无标题】
印象笔记终于支持默认markdown预览模式
官媒关注!国内数字藏品平台百强榜发布,行业加速合规健康发展
Garbage disposal method based on the separation of smart city and storage and living digital home mode
随机推荐
C# XML的应用
Lecture 1: stack containing min function
Niuke - Huawei question bank (61~70)
[4g/5g/6g topic foundation -147]: Interpretation of the white paper on 6G's overall vision and potential key technologies -2-6g's macro driving force for development
Sword finger offer II 107 Distance in matrix
CDZSC_2022寒假个人训练赛21级(1)
Become a "founder" and make reading a habit
CDZSC_2022寒假个人训练赛21级(2)
Thinkphp3.2 information disclosure
The difference between viewpager2 and viewpager and the implementation of viewpager2 in the rotation chart
AI moves from perception to intelligent cognition
【原创】程序员团队管理的核心是什么?
How to solve the problem of golang select mechanism and timeout
flink. CDC sqlserver. 可以再次写入sqlserver中么 有连接器的 dem
What development models did you know during the interview? Just read this one
CDZSC_ 2022 winter vacation personal training match level 21 (1)
Can't connect to MySQL server on '(10060) solution summary
第十四次试验
js逆向教程第二发-猿人学第一题
Delete a record in the table in pl/sql by mistake, and the recovery method