详解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中的线程进行网络编程的入门教程
Apr 15 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
python如何在循环引用中管理内存
Mar 20 Python
python之django母板页面的使用
Jul 03 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
pandas 时间格式转换的实现
Jul 06 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
Python request操作步骤及代码实例
Apr 13 Python
Python3开发环境搭建详细教程
Jun 18 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学习笔记 数组的常用函数
2011/06/13 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
记录Django开发心得
2014/07/16 Python
Python 加密的实例详解
2017/10/09 Python
python可视化text()函数使用详解
2020/02/11 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
入党积极分子思想汇报范文
2014/01/05 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
增员口号大全
2014/06/18 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2015年项目工作总结
2015/04/29 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
学会Python数据可视化必须尝试这7个库
2021/06/16 Python