【Django】前后端数据交互

news/2024/10/19 1:28:41/

文章目录

  • 1 从前端界面提取数据
  • 2 传递数据到前端并显示

1 从前端界面提取数据

django将数据从前端传输到后端,前端界面需要设置以下几点:

  1. <form>标签中action属性应设置为该表单将传递到的url地址,method属性设置为post;
  2. 后端会根据name属性提取数据,因此每个输入标签的name属性应当经过考量后设置;
  3. 表单应该有提交按钮,且type属性设置为"submit";
  4. 由于django有一定的安全验证机制,因此在form表单的最后应当设置{% csrf_token %};
{# 前端页面表单部分 #}
<form action="/message_form/" method="post" class="smart-green"><h1>留言信息<span>请留下你的信息.</span></h1><label><span>姓名 :</span>{# 后端会根据name属性提取数据 #}<input id="name" type="text" name="name" value="{{ message.name }}" class="error" placeholder="请输入您的姓名"/><div class="error-msg"></div></label><label><span>邮箱 :</span><input id="email" type="email" value="{{ message.email }}" name="email" placeholder="请输入邮箱地址"/><div class="error-msg"></div></label><label><span>联系地址 :</span><input id="address" type="text" value="{{ message.address }}" name="address" placeholder="请输入联系地址"/><div class="error-msg"></div></label><label><span>留言 :</span><textarea id="message" name="message" placeholder="请输入你的建议">{{ message.message }}</textarea><div class="error-msg"></div></label><div class="success-msg"></div><label><span>&nbsp;</span><input type="submit" class="button" value="提交"/></label>{# 安全验证机制 #}{% csrf_token %}
</form>

后端接收数据时,为了使用同一个函数既处理get操作,又处理post操作,所以需要加上if判断访问该url的方式;获取数据时使用request.POST.get()函数。

# 后端逻辑部分
def message_form(request):if request.method == "POST":# 若访问该url的方式为“POST”,即提交表单时,执行以下操作message = Message()message.name = request.POST.get("name", "")message.email = request.POST.get("email", "")message.address = request.POST.get("address", "")message.message = request.POST.get("message", "")message.save()return render(request, "message_form.html")

2 传递数据到前端并显示

django将数据从后端获取并显示在前端时,每一个input标签的value显示后端数据,下面代码的{{ message.name }}是django前端模板的使用方式,意为显示后端传递的message数据对象的name属性。

{# 前端页面表单部分 #}
<form action="/message_form/" method="post" class="smart-green"><h1>留言信息<span>请留下你的信息.</span></h1><label><span>姓名 :</span>{# 后端会根据name属性提取数据,value属性接收后端传来的数据并显示 #}<input id="name" type="text" name="name" value="{{ message.name }}" class="error" placeholder="请输入您的姓名"/><div class="error-msg"></div></label><label><span>邮箱 :</span><input id="email" type="email" value="{{ message.email }}" name="email" placeholder="请输入邮箱地址"/><div class="error-msg"></div></label><label><span>联系地址 :</span><input id="address" type="text" value="{{ message.address }}" name="address" placeholder="请输入联系地址"/><div class="error-msg"></div></label><label><span>留言 :</span><textarea id="message" name="message" placeholder="请输入你的建议">{{ message.message }}</textarea><div class="error-msg"></div></label><div class="success-msg"></div><label><span>&nbsp;</span><input type="submit" class="button" value="提交"/></label>{# 安全验证机制 #}{% csrf_token %}
</form>

从后端传递数据到前端,一般采用字典格式,通过render()函数直接传递即可,字典的key就是前端input标签的value属性中可以引用的数据。

# 后端逻辑部分
def message_form(request):if request.method == "POST":# 若访问该url的方式为“POST”,即提交表单时,执行以下操作message = Message()message.name = request.POST.get("name", "")message.email = request.POST.get("email", "")message.address = request.POST.get("address", "")message.message = request.POST.get("message", "")message.save()return render(request, "message_form.html", {"message": message})if request.method == "GET":# 若访问该url的方式为“GET”,即正常访问网页时,执行以下操作var_dict = {}all_messages = Message.objects.all()if all_messages:message = all_messages[0]var_dict = {"message": message}# 后端数据以字典形式传递return render(request, "message_form.html", var_dict)

http://www.ppmy.cn/news/239904.html

相关文章

华硕FL5800黑苹果教程

win10Mac10.12双系统 一. 准备 将硬盘分出一个大小最少60G的区&#xff0c;不要格式化&#xff0c;用来安装苹果系统将硬盘分出一个大小为10G的空间&#xff0c;用来制作安装盘。制作启动镜像.下载Mac系统镜像链接密码: 4dgw.下载硬盘安装助手工具链接密码: php3 用硬盘安装助手…

ROG华硕幻系列原厂预装系统恢复出厂设置安装包

ROG 幻162022原装Windows11系统恢复镜像GU603ZM ZX ZW专用工厂恢复系统 带隐藏分区恢复 文件分享地址https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd8888 华硕工厂恢复系统 系统带详细安装教程&#xff0c;安装结束后带隐藏分区以及机器所有驱动软件 注意需准备一个…

t100ta linux wifi,华硕t100ta使用说明 | 华硕t100ta怎么用_什么值得买

捡垃圾 篇一&#xff1a;回味win8平板的"辉煌"时代——华硕T100TA开箱简评 2021-02-24 13:07:48 35点赞 52收藏 35评论 第一次在张大妈上写文&#xff0c;有点小紧张 大家嚎啊&#xff0c;我是爱捡垃圾的&#x1f430;兔子&#xff0c;图吧十二级专业认证 初级垃圾佬…

华硕AC66U_B1救砖或者恢复固件

手贱&#xff0c;刷了个DD-WRT&#xff0c;然后发现无法还原固件&#xff0c;刷不回原厂固件。网上找不到恢复的方法。还是DD-WRT官网给力&#xff0c;本身就提供了恢复原厂固件的方法&#xff0c;是英文的。但是其中提到的一个工具&#xff0c;现在没有了。ASUS recovery tool…

买的香港云服务器怎么用?云服务器使用教程

香港云服务器的优势及好处&#xff0c;使得很多人都愿意使用和推荐&#xff0c;推荐的人多了自然购买的人就多了&#xff0c;其中不乏很大部分新手&#xff0c;购买之后却不知道该怎么使用和管理登录等操作。下面我们聊聊香港云服务器怎么登录使用。 香港云服务器登录管理方法&…

伤心华硕,再见华硕

去年买本的时候 一是在别人劝说下 二是爱国的情感吧 买了华硕的本子 现在后悔至极 去年住院多次&#xff08;大部分都是由于硬件引起的&#xff09; 但是都有很快就搞定了 今年更惨了 由于以前都是网线上网 没有使用无线网卡 今年要用无线网卡 发现用多线程下载…

华硕fl8000u是什么型号_华硕FL8000UN值得买吗?华硕FL8000UN笔记本全面深度评测+拆解图...

随着目前英特尔的第八代酷睿处理器已经面世,可以说是最佳的选择。华硕就推出了搭载全新处理器的顽石系列笔记本—FL8000U,在性能强大的同时,还有着15.6英寸的超大屏幕,那么华硕FL8000UN好用吗?华硕FL8000UN性能如何?华硕FL8000UN怎么样值得买吗?下面我们就来看看它的表现…

给国行Sony9500H更换美区950H主板

折腾理由 家中小朋友因为疫情&#xff0c;经常需要投屏上网课&#xff0c;感觉在pad上面看&#xff0c;画面太小距离太近&#xff0c;并且已经近视&#xff0c;想着投屏到电视上&#xff0c;稍微改善一下用眼环境。软件投屏用着不爽&#xff0c;国产投屏软件有广告&#xff0c…