详解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和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
对python中类的继承与方法重写介绍
Jan 20 Python
使用Python制作简单的小程序IP查看器功能
Apr 16 Python
Python中字符串与编码示例代码
May 20 Python
详解Python二维数组与三维数组切片的方法
Jul 18 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
Django ORM filter() 的运用详解
May 14 Python
Python读取ini配置文件传参的简单示例
Jan 05 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
PHP中动态显示签名和ip原理
2007/03/28 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
php短域名转换为实际域名函数
2011/01/17 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
JS面向对象编程 for Cookie
2010/09/19 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
Json解析的方法小结
2016/06/22 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
python实现将内容分行输出
2015/11/05 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
高中班主任评语大全
2014/04/25 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书