数据的使用、表关系的创建、Django框架的请求生命周期流程图
- 软件开发
- 2025-08-13 09:24:02

目录
一、数据的增删改查
1. 用户列表的展示
2. 修改数据的逻辑分析
3. 删除功能的分析
二、如何创建表关系
三、Django的请求生命周期流程图
一、数据的增删改查 1. 用户列表的展示
把数据表中得用户数据都给查询出来展示在页面上
查询数据
def userlist(request): """展示用户数据""" # 1、 先查询数据表 """这里不之处负数切片""" # user_list=models.UserInfo.objects.all()[0:2] # 查询所有的数据 # user_list=models.UserInfo.objects.first() # 查询所有的数据 # select *from userinfo where username ='kevin'; # filter:类比where的使用 # 只要返回的结果是queryset对象,那么就可以一直点方法下去 # user_list=models.UserInfo.objects.filter(username='kevin').first() # 查询所有的数据 user_list=models.UserInfo.objects.all() # 查询所有的数据 # queryset对象就是一个列表套对象的形式 # <QuerySet [<UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>]> # print(user_list[0]) # print(user_list[0].username) # print(user_list[0].password) # print(user_list[0].gender) # print(user_list[1].gender) '''支持for循环''' # for i in user_list: # print(i.gender) return render(request, 'userlist.html', locals()) def edit(request): """先接收id值""" edit_id = request.GET.get('id') """根据这个id值,再次去表中查询当前这条数据""" # <QuerySet [<UserInfo: kevin>]> edit_obj=models.UserInfo.objects.filter(id=edit_id).first() if request.method == 'POST': hidden_id = request.POST.get('hidden_id') username = request.POST.get('username') password = request.POST.get('password') gender = request.POST.get('gender') 2. 修改数据的逻辑分析 先确定修改哪条记录------>怎么样确定修改哪条记录?通过什么字段可以确定唯一一条记录? 主键id,要携带主键id到后端.在后端接收主键id值,然后根据这个id值再去表中查询数据,查询一条然后把查询的数据在渲染到页面中,然后在修改把修改之后的表单提交到后端,在做修改数据的修改
# 第一种方式的修改 affect_rows=models.UserInfo.objects.filter(pk=hidden_id).update(username=username, password=password, gender=gender) # print(affect_rows) # 第二种方式的修改 edit_obj.username=username edit_obj.password=password edit_obj.gender=gender edit_obj.save() # 保存数据的 # 跳转地址到列表展示也 return redirect('/userlist/') return render(request, 'edit.html', locals())数据的添加
def delete(request): """1、还是要接收前端传过来的主键id值""" delete_id = request.GET.get('id') # delete from userinfo where id = 1; # models.UserInfo.objects.filter(pk=delete_id).delete() # user_obj = models.UserInfo.objects.filter(pk=delete_id).first() # user_obj.delete() return redirect('/userlist/') def add(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') gender = request.POST.get('gender') """操作数据量添加数据""" # 返回的是当前记录的对象 # user_obj=models.UserInfo.objects.create(username=username, password=password, gender=gender) # print(user_obj) # pyy # print(user_obj.gender) # print(user_obj.pk) """第二种方式添加""" user_obj = models.UserInfo(username=username,password=password,gender=gender) user_obj.save() return redirect('/userlist/') return render(request, 'add.html') 3. 删除功能的分析 给删除按钮加一个链接,携带当前记录的id值后端要接收这个主键id值后端直接执行删除操作数据的删除
二、如何创建表关系 一对一 一对多 多对多没有关系以图书管理系统为例
图书表出版社表作者表作者详情表换位思考判断表关系
图书表和出版社表 >>> 一对多 >>> 图书表是多,出版社是一 >>> 建在多的一方图书表和作者表 >>> 多对多 >>> 需要第三张表作者表和作者详情表 >>> 一对一 >>> 外键字段一般建在查询频率较高的在Django中如何创建表关系
class Book(models.Model): title = models.CharField(max_length=64) """ max_digits=None,:总位数 decimal_places=None:小数位数 """ # price decimal(8,2) price = models.DecimalField(max_digits=8, decimal_places=2) # publish_id = models.ForeignKey(to='Publish', to_field='id') """对于外键字段关系,会自动帮我们拼接_id""" publish = models.ForeignKey(to='Publish') """authors它是一个虚拟字段,它不会实际在表中创建出来这个字段, 这一句可以自动帮助我们创建出来第三张表""" authors = models.ManyToManyField(to='Author') """出版社表""" class Publish(models.Model): name = models.CharField(max_length=64) addr = models.CharField(max_length=64) """作者表""" class Author(models.Model): name = models.CharField(max_length=64) author_detail = models.OneToOneField(to='AuthorDetail') """作者详情表""" class AuthorDetail(models.Model): phone = models.CharField(max_length=64) email = models.CharField(max_length=64) 三、Django的请求生命周期流程图数据的使用、表关系的创建、Django框架的请求生命周期流程图由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“数据的使用、表关系的创建、Django框架的请求生命周期流程图”