【flask】 前后端通信方式 原生js的ajax,总结

前端接收参数

#如果是路径参数如:/auth/<email>
#渲染模版并向html页面传参数
@app.route('/blog/<blog_id>')
def blog_detail(blog_id):return render_template('blog_detail.html',blog_id=blog_id)#如果 methods是post说明参数在请求体里面,
request.form['参数key’] 
Request.form.get[‘key']#如果 methods 是get 说明参数在url路径里面
request.args.get(‘key’)
request.values.get(‘key')

例子是前端需要给邮箱发送验证码。所以需要填写邮箱,然后点击按钮,发送验证码给所填写的邮箱。

前段传递给后段数据(ajax)
这里的例子是js的ajax,js部分逻辑:
首先是获取到按钮,给按钮添加点击事件。点击事件内部逻辑为获取到邮箱输入框中所输入的邮箱,并将其传递给后端。
js中的ajax如果要传递参数,如果是get参数直接在url后面填写即可;如果是post参数,需要在xhr.send()方法后面添加所要传递的参数。参数之间用’&’连接

#发送post参数
xhr.send("email=+email+&username=+username);

整体js代码

window.onload=function(){var getVerificationCodeButton = document.getElementById("captcha-btn");getVerificationCodeButton.addEventListener('click',function(){var inputElement = document.getElementById("exampleInputEmail1");var email = inputElement.value;//1.创建对象const xhr = new XMLHttpRequest();//2.初始化xhr对象xhr.open('POST','/auth/sendVerificationCode');//设置请求头xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); //固定语法//3.发送请求,在这里,可以传请求体参数xhr.send("email="+email);//4.事件绑定 处理服务器端返回的结果//on when//readystate是xhr对象中的属性,表示状态//0未初始化,刚开始//1表示open调用完毕,2表示send方法调用完毕//3表示服务端返回部分结果,4表示返回全部结果xhr.onreadystatechange = function(){//判断服务器已经返回了所有结果if(xhr.readyState === 4){if(xhr.status >= 200 && xhr.status<300){//处理结果 行 头 空行 体console.log(xhr.status);//响应状态码console.log(xhr.statusText);//状态字符串console.log(xhr.getAllResponseHeaders);//所有响应头console.log(xhr.response);//响应体}}}})
}

后端接收参数代码

#发送验证码到邮箱 —这个auth是使用蓝图的哦
@auth.route("/sendVerificationCode",methods=["POST","GET"])
def send_verification_code():email = request.form.get("email")print(email)message = Message(subject="发送验证码测试", recipients=[email], body="邮箱发送验证码测试");mail.send(message);return "发送验证码"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/460790.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql5.7.44 arm 源码编译安装

一、&#xff1a;下载源码&#xff1a;mysql官网&#xff1a;MySQL :: MySQL Downloads #####下载mysql安装包 &#xff1a; 网址&#xff1a;https://www.mysql.com/ 可在页面下载后上传或直接下载。 官网地址首页&#xff0c;拉到最底部&#xff0c;找到社区版本下载&#xf…

BatchNorm推理阶段和Conv合并

BatchNorm推理阶段和Conv合并 本文全文来自&#xff1a; https://www.cnblogs.com/xiaxuexiaoab/p/16422640.html。 只只作为自己的复习使用&#xff0c;不作他用。 BN层作用 批量归一化&#xff08;Batch Normalization&#xff0c;BN&#xff09;在深度学习中常放在卷积层之…

第二十章 Vue组件通信之父子通信

目录 一、引言 二、组件关系分类 三、组件通信的解决方案 3.1. 父子通信流程图 3.2. 父组件通过 props 将数据传递给子组件 3.2.1. 代码App.vue 3.2.2. 代码MySon.vue 3.3. 子组件利用 $emit 通知父组件修改更新 ​编辑3.3.1. 代码App.vue 3.3.2. 代码MySon.vue 3…

对话瀚荃:为何欧美拟统一采用USB-C充电接口?

【哔哥哔特导读】英国、美国等地都准备统一电气设备充电标准&#xff0c;USB-C接口为何成为业界首选?选择USB-C连接器&#xff0c;又有什么注意事项? 近期&#xff0c;有消息指出英国、美国等地均启动了关于电气设备充电标准的咨询活动&#xff0c;希望听取制造商、进口商、…

如何解决RabbitMQ消息的重复消费问题

什么情况下会导致消息的重复消费——在消费者还没成功发送自动确认机制时发生&#xff1a; 网络抖动消费者挂了 解决方案 每条消息设置一个唯一的标识id幂等方案&#xff1a;【Redis分布式锁、数据库锁&#xff08;悲观锁、乐观锁&#xff09;】 面试官&#xff1a;如何解决…

vue中el-table显示文本过长提示

1.el-table设置轻提示:show-overflow-tooltip“true“&#xff0c;改变轻提示宽度

Couldn‘t apply path mapping to the remote file.

Couldn’t apply path mapping to the remote file. /s6home2/zjw524/projects/seq2seq/code/deepnmtpycharm/deepNmt/code/deepNmtPycharm/deepNmt/model/Deep_NMT_Model.py can’t be found in project. You can continue debugging, but without the source. To fix that yo…

Tech Talk: 浅谈AI浪潮下的计算型存储SSD

引言 近年来&#xff0c;AI应用态势迅猛增加&#xff0c;对计算侧的算力和内存提出了更高的要求。GPU、HBM这些高性能高密计算部件和内存部件&#xff0c;在AI计算场景中作为必需品&#xff0c;成为市场热点。业界也在讨论能否把计算侧的业务卸载到存储侧&#xff0c;称为计算…

华为配置 之 STP

目录 简介&#xff1a; STP&#xff1a; RSTP: 如何改变根网桥&#xff1a; &#xff08;1&#xff09;改变优先级&#xff1a; &#xff08;2&#xff09;改变root: 各端口的状态&#xff1a; 总结&#xff1a; 简介&#xff1a; STP&#xff08;Spanning Tree Protoco…

大数据挖掘和数据挖掘有什么不一样?

一、数据挖掘&#xff1a; 数据挖掘&#xff08;Data Mining&#xff09;是指从大量的、不完全的、有噪声的、模糊的、随机的数据中&#xff0c;提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。 数据挖掘的概念起源于 20 世纪 80 年代后期&#xff0c…

活动|2024 CodeFuse 「编码挑战季」活动已开启!欢迎报名参加

Hi~开发者们&#xff0c;1024 程序员节快乐&#xff0c;向你们致敬&#xff01; CodeFuse 开源一年多以来&#xff0c;受到众多开发者的欢迎。在 1024 程序员节之际&#xff0c;CodeFuse 发起「编码挑战季」活动&#xff0c;诚邀广大开发者们参与 muAgent、MFTCoder、ModelCach…

Linux上本地部署KubeSphere与cpolar实现远程管理和监控集群

文章目录 前言1. 部署KubeSphere2. 本地测试访问3. Linux 安装Cpolar4. 配置KubeSphere公网访问地址5. 公网远程访问KubeSphere6. 固定KubeSphere公网地址 前言 本文主要介绍如何在Linux CentOS搭建KubeSphere并结合Cpolar内网穿透工具&#xff0c;实现远程访问&#xff0c;根…

Chrome浏览器音/视频无法自动播放

背景&#xff1a;由于google的一些制度&#xff0c;我们在写html项目时会发现刷新页面时无法自动播放audio和video&#xff0c;即使你添加了autoplay属性也无济于事&#xff0c; 但是IE和Edge浏览器是可以自动播放的。 解决方案&#xff1a; 本人在网上搜寻了很多方法&#xf…

vue的路由的两种模式 hash与history 详细讲解

文章目录 1. Hash 模式工作原理优点缺点使用示例 2. History 模式工作原理优点缺点服务器配置示例使用示例 总结 Vue Router 是 Vue.js 的官方路由管理器&#xff0c;它支持多种路由模式&#xff0c;其中最常用的两种是 hash 模式和 history 模式。下面我们详细讲解这两种模式的…

什么是目标检测?

首先计算机视觉能够解决哪些问题&#xff1f;&#xff1f; 分类、检测、分割 首先以下面这幅图为例&#xff1a; 分类就是输入一张图像&#xff0c;算法能够告诉我们图像中有什么类别&#xff0c;比如说猫或者狗&#xff0c;而并不知道这个类别在图像中的位置&#xff0c;如…

转移概率矩阵的计算

目录 T1T2 T1 写出图示信道的转移概率矩阵&#xff0c;并指出其是否为对称信道。 解&#xff1a; 信道的转移概率矩阵 P ( Y ∣ X ) [ 0.99 0.01 0 0.005 0.99 0.005 0 0.01 0.99 ] P(Y|X)\begin{bmatrix}0.99&0.01&0\\0.005&0.99&0.005\\0&0.01&0.9…

Linux中Samba服务配置和管理

文章目录 一、Samba介绍1.1、Samba是什么1.2、Samba的核心功能1.3、Samba的主要组件1.4、Samba的工作流程1.5、Samba主要配置文件smb.conf 二、Samba安装2.1、更新yum源2.2、安装Samba客户端和服务器软件包2.3、启动Samba 三、Samba的使用3.1、设置Samba服务的全局选项3.2、tes…

MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升

在当今矿业行业&#xff0c;随着全球对资源需求的不断增加和开采难度的逐步提升&#xff0c;传统的作业方式面临着越来越多的挑战。露天矿山开采&#xff0c;因其大规模的作业环境和复杂的地形特点&#xff0c;面临着作业人员的安全风险、设备调度的高难度以及资源利用率低下等…

Spring Security 门神中的战斗机

Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。 小项目有Shiro的比较多&#xff0c;因为相比与SpringS…

CentOS 7 下升级 OpenSSL

升级openssh,下载&#xff1a;https://download.csdn.net/download/weimeilayer/89935114 上传到服务器&#xff0c;然后执行命令 rpm -Uvh *.rpm --nodeps --force安装依赖 yum -y install gcc perl make zlib-devel perl-CPAN下载安装包&#xff1a;https://github.com/ope…