详解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文档生成工具pydoc使用介绍
Jun 02 Python
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
python3.6的venv模块使用详解
Aug 01 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
如何在python中实现线性回归
Aug 10 Python
python连接mysql数据库并读取数据的实现
Sep 25 Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 Python
如何获取numpy array前N个最大值
May 14 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 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
python验证码识别实例代码
2018/02/03 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
对Django外键关系的描述
2019/07/26 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
初中生学习的自我评价
2013/11/14 职场文书
工厂厂长的职责
2013/12/12 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
教师业务学习制度
2014/01/25 职场文书
老师对学生的寄语
2014/04/09 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书