django-前后端交互
admin
2023-08-16 08:15:32
0

创建一个html文件用来用户注册:

{{ obj.user }}
{{ obj.group }}

配置好访问:
django-前后端交互
文章图片
image.png
创建用户数据:
def createuser(request):obj = UserForm.CreateForm(request.POST)if request.method == 'POST': if obj.is_valid(): all_data = https://www.it610.com/article/obj.clean()group_id = all_data['group'] username = all_data['user']# 1、先获取字典表里的数据对象 # group_obj = models.GroupNew.objects.get(id=group_id) # # 创建用户数据 # models.UserNew.objects.create(user=username, group=group_obj)# 2、 直接传group_id不需获取对象 models.UserNew.objects.create(user=username, group_id=group_id)else: pass return render(request, 'foreign/createuser.html', {'obj': obj})

然后再vires.py里面就可以直接拿到前端传来的字典,直接创建数据了。注意用**的方式传参
from app01.forms import foreignas UserFormdef createuser(request):obj = UserForm.CreateForm(request.POST)if request.method == 'POST': if obj.is_valid(): all_data = https://www.it610.com/article/obj.clean() print all_data # group_id = all_data['group'] username = all_data['user']# 1、先获取字典表里的数据对象 # group_obj = models.GroupNew.objects.get(id=group_id) # # 创建用户数据 # models.UserNew.objects.create(user=username, group=group_obj)# 2、 直接传group_id不需获取对象models.UserNew.objects.create(**all_data)#用**的方式传递字典参数else: pass return render(request, 'foreign/createuser.html', {'obj': obj})

下面我们可以来展示一下数据:
在views.pu里把数据全部拿到,返回到前端:
from app01.forms import foreignas UserFormdef createuser(request):obj = UserForm.CreateForm(request.POST)if request.method == 'POST': if obj.is_valid(): all_data = https://www.it610.com/article/obj.clean() models.UserNew.objects.create(**all_data) else: passuser_list = models.UserNew.objects.all()#获取到表中的全部数据return render(request,'foreign/createuser.html', {'obj': obj, 'user_list': user_list})

前端页面获取数据展示:
在前端页面不能显示用户组的id,而是直接显示用户组的名称
因为外键对应的字段是一个对象,这个对象代指的是字典表中的一行数据,所以我们在前端取到字典表中的数据用“.”获取
{% for item in user_list %} 从对象中获取数据用"." {% endfor %}
{{ item.user }} {{ item.group.groupname }}

我们在前端用get的方法获取数据,
在浏览器的url后追加字符 http://127.0.0.1:8000/createuser/?group=CFO
例如:我们要展示CFO组里面所以得用户,在views里要如何写呢?
我们在前端用get的方法获取数据,在浏览器的url后追加字符http://127.0.0.1:8000/createuser/?group=CEO例如:我们要展示CEO组里面所以得用户,在views里要如何写呢?

from app01.forms import foreign as UserForm
【django-前后端交互】def createuser(request):
obj = UserForm.CreateForm(request.POST)if request.method == 'POST': if obj.is_valid(): all_data = https://www.it610.com/article/obj.clean() models.UserNew.objects.create(**all_data) else: pass val = request.GET.get('group') user_list = models.UserNew.objects.filter(group__groupname=val)# 去字典表里的数据时用双下划线return render(request, 'foreign/createuser.html', {'obj': obj, 'user_list': user_list})

总结 创建数据:1、根据对象级别来操作表。 表中有外键的字段代指的就是另外一张表的一行数据。在Models里的表现形式就是一个对象,那么我们创建这张表时,给外键的字段传值时也应该传一个对象,而从前台获取到的是一个数字“1”,1不是一个对象,根据这个“1”先创建一个字典表的对象,所以根据前台的“1”先获取字典表里对应的数据对象,把这个对象传递到创建表时所需的对象参数即可。 (其实也是把对象转换成sql语句拼接成带_id的样式,有一种多此一举的感觉)2、根据数据库级别来操作表。 首先我们可以先查看一下数据库表中的外键值的样式 user_group_id。“_id”在models没有定义的,是django自动为我们定义的样式。所以我们在向数据库中插入数据的时候,外键的字段应该加上_id,这样就可以直接传从前台获取的数字了。 (可以再form中修改外键的值,加"_id",这样传到后台的数据就能直接拿到一个字典,在用**的方式传值创建数据)获取数据:跨表取数据用 "." 因为在models里的外键代指的是另外一张表的一行数据,且这个数据类型为一个对象。 那么就可以根据这个对象直接找到那行数据里对应的字段。用 “.”获取 在前端页面就可以{{item.group.groupname}}方式获取到。跨表过滤数据时用 “__” 过滤数据用双下划线 “__”(group__groupname=val),如果有多张表建立外键继续用双下划线“__”跨表查询数据

相关内容

热门资讯

手... 定位是手机最基本的功能。 在网上简单搜索“手机定位找人”,就会发现很多厂商声称提供此类服务。 有的厂...
自... AMD Ryzen 7000 处理器已经上架。 得益于联发科的5nm工艺和AMD全新的ZEN4架构,...
条... 近日,有客户在使用条码生成软件时询问制作EAN-18条码,但条码类型中并没有找到EAN-18条码类型...
币... 年检工作正在紧锣密鼓地进行中。 面对数百份各类报表、账本隐藏文件 小编推荐 软件,以及下拉列表中无穷...
c... 作为OPPOReno系列第十代的里程碑,OPPOReno10系列自发布以来就受到了消费者的一致好评。...
A... 》点击上方“GameLook”↑↑↑订阅陌陌》可能越来越多的同事意识到AIGC的力量。 尤其是其画人...
导... 我们平时买衣服的时候条码标签打印机软件,如果仔细观察衣服,我们会发现一个小小的衣物漂洗标签。 这种漂...
吊... 当我们提到吊牌时条码标签打印机软件,我们首先想到的可能是服装吊牌、植物吊牌、产品标签吊牌等。此类可变...
电... 我最近买了一辆新的有轨电车,拿到钥匙后条码标签打印机软件,我在电车钥匙里面发了一个条形码。 今天我就...
Q... Qubii支持日本腐竹。 豆腐酱小巧精致,如其名字一样香甜,专为iPhone数据备份而设计。 每次您...
A... 还不懂CAD? CAD2020软件+入门视频教程,附近数百个插件CAD对于设计和绘图是必不可少的。...
银宝街app交易平台虚假白银期...   抖音上宣传“5元即可投资”“低投资高回报”“在家也可以操作完全不用上班”“充值100送160”等...
R... 虽然数字货币挖矿仍然是PC厂商避而不谈的话题,但主板、游戏笔记本、游戏台式机等高性能设备之所以供不应...
小... “小米手机有录屏功能吗?有人知道吗?最近想用它来录制直播,现在突然找不到了录制视频声音软件,怎么办?...
文... 在日常工作和生活中,我们经常会遇到从手机上传文件到笔记本电脑、从电脑发送文件到手机的需求。 如果是同...
手... 目前几乎所有的智能手机都内置了屏幕录制功能。 您只需向下滚动进入控制中心即可轻松找到屏幕录制功能。 ...
锤... 航空新闻(ID:lifeissohappy)微博@lishuhang“锤子结束了。”2018年5月1...
牛... 以下外包项目均为一牛众包平台真实有效项目需求一:5.0以上系统的HDMI输出设置插件开发需求属性:软...
嵌... 感兴趣的同学请前往CSDN查看FreeRTOS解读系列专栏。目前常见的嵌入式软件系统架构有三种,可分...
虚... 最近,很多主板都断货了。 虽然他们能拿到的价格很高比特币挖矿软件教程,但顾客通常不会接受,所以最近蜗...