Python的flask接收前台的ajax的post数据和get数据的方法


Posted in Python onApril 12, 2021

ajax向后台发送数据:

①post方式

ajax:

@app.route("/find_worldByName",methods=['POST'])
type:'post',
data:{'cname':cname,'continent':continent},
这是post方式传值
那么在后台接收就是:(使用request的form方法)
continent = request.form.get("continent")
cname = request.form.get("cname")

②get方式(url参数)

 使用request的values方法

使用request的values方法

data:{'cname':cname,'continent':continent},
name=request.values.get("cname")

总结:

这两种的区别就是数据在ajax data里的发送方式不同(get和post),所以在后台接收的时候也会不同。
使用request.form.get 方式获取的是一个json字符串(在这个方法会自动转化json对象,可以直接用key访问)
使用request.values.get 方式获取的是通过url传递的get参数

Python的flask接收前台的ajax的post数据和get数据的方法

Python的flask接收前台的ajax的post数据和get数据的方法

下面的代码是整个流程实现:ajax:

//查询js
function find_res(){
    var cname;
    var continent;
    // $.ajax
    // ({
    //     method:"post",
    //     url:"http://localhost:8080/PycharmProjects/Cov/templates/world.html?_ijt=q6ulfhihrfp8rqkl8id73svio3",
    //     success:function(data)
    //     {
    //         //form表单数据的转化,转化成[ { name: , value:   },{ name: , value:   } ]
    //         all=$('#find_value').serializeArray()
    //         // console.log(all['cname'])
    //         console.log(all[0])
    //         cname=all[0]['value']
    //         alert(cname)
    //     }
    // })
    cname=document.getElementById("cname").value
    continent=document.getElementById("continent").value
    console.log(cname+continent)
    // alert("表单数据:   "+"国家:"+cname+ "大洲:"+ continent)
    $.ajax
    ({
            // sync:true,
            url:"/find_worldByName",
            // type:'post',
            data:{'cname':cname,'continent':continent},
            success:function (data)
            {
                // alert("!!!")
                table_data=data.data;
                for(var i=0;i<table_data.length;i++)
                {
                // console.log(table_data[i]);
                }
            var appendHTML = "";
        if($(".map-table tbody tr").length>0){
            $(".map-table tbody tr").remove();
        }
        // alert("list长度:"+table_data.length)
        for(var i=0; i<table_data.length; i++)
            {
            //分割日期字符串
            strdt=table_data[i][1].split(" ");
            strdt=strdt[0]+strdt[1]+strdt[2]+strdt[3]
            appendHTML = "<tr align='center' style='color:aquamarine;'><td>"+
            strdt+"</td><td>"+
            table_data[i][2]+"</td><td>"+
            table_data[i][5]+"</td><td>"+
            table_data[i][8]+"</td><td>"+
            table_data[i][9]+"</td><td>"+
            table_data[i][4]+"</td><td>"+
            (i+1)+"</td></tr>";
                $(".map-table tbody").append(appendHTML);
            }
        }
    })
}

前台html:

<table align="center" style="margin:3px"  cellspacing="7px">
                <form id="find_value">
                    <label><font color="#ff7f50">输入国家:</font></label>
                    <input id="cname" type="text" name="cname" placeholder="" value="">

                    <label><font color="#ff7f50">输入大洲:</font></label>
                    <input id="continent" type="text" name="continent" placeholder="" value="">

                    <input type="button" value="查询" onclick="find_res()">
                    <input type="reset" value="重置">
                </form>
                <thead>
                 <tr style="color: #FFB6C1">
                <th>时间</th>
                <th>国家</th>
                <th>累计确诊</th>
                <th>累计治愈</th>
                <th>累计死亡</th>
                <th>现存确诊</th>
                <th>排名</th>
              </tr>
                </thead>
                <tbody id="bd_data">
                </tbody>
            </table>

Python flask路由:

@app.route("/find_worldByName")
def find_worldByName():
    #获取用户传来的数据
    # jsondata = json.loads(request.form.get('jsondata'))
    res=[]
    #get方式
    cname = request.values.get("cname")
    continent = request.values.get("continent")
    #post方式
    # continent = request.form.get("continent")
    # cname = request.form.get("cname")

    # print(cname+continent)
    res=utils.find_worldByName(cname,continent)
    # res = utils.find_worldByName("美国", "")
    # print(res)
    return jsonify({"data": res})

后台获取数据库数据:

def find_worldByName(c_name,continent):
    print(c_name)
    print(continent)
    sql = " SELECT * FROM world WHERE  1=1 "
    if(c_name!=None):
        sql=sql+"AND ( c_name LIKE '%"+c_name+"%' )"
    if(continent!=None):
        sql=sql+" AND ( continent LIKE '%"+continent+"%') "
    sql=sql+" AND dt=(SELECT dt FROM world order by dt desc limit 1) order by confirm desc "

          # "AND continent LIKE '%%%%%s%%%%'" \
          # " order by dt desc " %(c_name,continent)
    # sql_temp = " SELECT * FROM world WHERE c_name LIKE '%"+c_name+"%' "
    res = query(sql)
    list= []
    for i in res:
        # print(i)
        list.append(i)
    return list;
def query(sql,*args):
    """
    通用封装查询
    :param sql:
    :param args:
    :return:返回查询结果 ((),())
    """
    conn , cursor= get_conn()
    print(sql)
    cursor.execute(sql)
    res = cursor.fetchall()
    close_conn(conn , cursor)
    return res

到此这篇关于Python的flask接收前台的ajax的post数据和get数据的方法的文章就介绍到这了,更多相关Python flask接收前台ajax post和get数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
linux系统使用python监测系统负载脚本分享
Jan 15 Python
全面解读Python Web开发框架Django
Jun 30 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python实现简易Web爬虫详解
Jan 03 Python
python对象与json相互转换的方法
May 07 Python
python实现批量修改服务器密码的方法
Aug 13 Python
python实现拼接图片
Mar 23 Python
python2.7使用scapy发送syn实例
May 05 Python
django rest framework使用django-filter用法
Jul 15 Python
Python集合set()使用的方法详解
Mar 18 Python
Python 匹配文本并在其上一行追加文本
May 11 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
You might like
PHP - Html Transfer Code
2006/10/09 PHP
phpwind中的数据库操作类
2007/01/02 PHP
php一些公用函数的集合
2008/03/27 PHP
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
Python验证码识别处理实例
2015/12/28 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
C语言如何决定使用那种整数类型
2016/11/26 面试题
建筑工程实习自我鉴定
2013/09/19 职场文书
怎么写有吸引力的自荐信
2013/11/17 职场文书
酒店门卫岗位职责
2013/12/29 职场文书
股权转让意向书
2014/04/01 职场文书
审美与表现自我评价
2015/03/09 职场文书
工作失职自我检讨书
2015/05/05 职场文书
学风建设主题班会
2015/08/17 职场文书
经销商会议开幕词
2016/03/04 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
MySQL GRANT用户授权的实现
2021/06/18 MySQL