详解Python flask的前后端交互


Posted in Python onMarch 31, 2022

场景:按下按钮,将左边的下拉选框内容发送给后端,后端再将返回的结果传给前端显示。

按下按钮之前:

详解Python flask的前后端交互

按下按钮之后:

详解Python flask的前后端交互

代码结构

这是flask默认的框架(html写在templates文件夹内、css和js写在static文件夹内)

详解Python flask的前后端交互

前端

index.html

很简单的一个select下拉选框,一个按钮和一个文本,这里的 {{ temp }} 是从后端调用的。

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="stylesheet" href="static/css/style.css">
    <title>TEMP</title>
</head>
<body>
    <div class="container">
        <div class="person">
            <select id="person-one">
                <option value="新一">新一</option>
                <option value="小兰">小兰</option>
                <option value="柯南">柯南</option>
                <option value="小哀">小哀</option>
            </select>
        </div>
        <div class="transfer">
            <button class="btn" id="swap">转换</button>    
        </div>
        <p id="display">{{ temp }}</p>
    </div>
    <script src="/static/js/script.js"></script>  
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</body>
</html>

script.js

这里给按钮添加一个监听事件,按下就会给服务器发送内容,成功了则返回内容并更改display

注意

  • 需要在html里添加<script src="https://code.jquery.com/jquery-3.6.0.min.js">,否则$字符会报错。
  • dataType如果选择的是json,则前后端交互的内容均应为json格式。
const person = document.getElementById('person-one');
const swap = document.getElementById('swap');
function printPerson() {
    $.ajax({
         type: "POST",
         url: "/index",
         dataType: "json",
         data:{"person": person.value},
         success: function(msg)
         {
             console.log(msg);
             $("#display").text(msg.person);//注意显示的内容
         },
         error: function (xhr, status, error) {
            console.log(error);
        }
    });
}
swap.addEventListener('click', printPerson);

后端

app.py

from flask import Flask, render_template, request
app = Flask(__name__)

@app.route('/')
@app.route("/index", methods=['GET', 'POST'])
def index():
    message = "选择的人物为:"
    if request.method == 'POST':
        person = str(request.values.get("person"))
        return {'person': person}
    return render_template("index.html", temp=message)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8987, debug=True)

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Python 相关文章推荐
python检测远程udp端口是否打开的方法
Mar 14 Python
用Python创建声明性迷你语言的教程
Apr 13 Python
python构建自定义回调函数详解
Jun 20 Python
python分布式环境下的限流器的示例
Oct 26 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
python 等差数列末项计算方式
May 03 Python
keras处理欠拟合和过拟合的实例讲解
May 25 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
Python数据可视化之绘制柱状图和条形图
May 25 Python
ubuntu安装jupyter并设置远程访问的实现
Python中time与datetime模块使用方法详解
Mar 31 #Python
Python用tkinter实现自定义记事本的方法详解
Mar 31 #Python
Python利用zhdate模块实现农历日期处理
Mar 31 #Python
详解Python中__new__方法的作用
Mar 31 #Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 #Python
利用Python多线程实现图片下载器
You might like
为查询结果建立向后/向前按钮
2006/10/09 PHP
php 图片加水印与上传图片加水印php类
2010/05/12 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
js实现图片轮播效果
2015/12/19 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python提取网页中超链接的方法
2016/09/18 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
入党申请书格式
2019/06/20 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
Python保存并浏览用户的历史记录
2022/04/29 Python