详解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的Flask框架中的signals信号机制
Jun 13 Python
Python numpy生成矩阵、串联矩阵代码分享
Dec 04 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
Django中使用第三方登录的示例代码
Aug 20 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
对python中类的继承与方法重写介绍
Jan 20 Python
对python判断是否回文数的实例详解
Feb 08 Python
python文件处理fileinput使用方法详解
Jan 02 Python
Python networkx包的实现
Feb 14 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
Python进程间的通信之语法学习
Apr 11 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
隐性调用php程序的方法
2015/06/13 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
python3操作微信itchat实现发送图片
2018/02/24 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
python多进程并发demo实例解析
2019/12/13 Python
Python netmiko模块的使用
2020/02/14 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
python批量生成条形码的示例
2020/10/10 Python
python时间time模块处理大全
2020/10/25 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
SQL Server面试题
2013/04/04 面试题