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 相关文章推荐
Python自动调用IE打开某个网站的方法
Jun 03 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
Python3字符串encode与decode的讲解
Apr 02 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
Python封装成可带参数的EXE安装包实例
Aug 24 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
基于Python 的语音重采样函数解析
Jul 06 Python
python实现excel公式格式化的示例代码
Dec 23 Python
python实现不同数据库间数据同步功能
Feb 25 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
You might like
php&amp;java(二)
2006/10/09 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
django 创建过滤器的实例详解
2017/08/14 Python
python使用生成器实现可迭代对象
2018/03/20 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
python中最小二乘法详细讲解
2021/02/19 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
精彩的推荐信范文
2013/11/26 职场文书
餐饮加盟计划书
2014/01/10 职场文书
关于爱情的广播稿
2014/01/16 职场文书
会议活动邀请函
2014/01/27 职场文书
家长对小学生的评语
2014/01/28 职场文书
大学军训感想
2014/02/12 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
服装店营销方案
2014/03/10 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
出生公证书
2015/01/23 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电
Python正则表达式中flags参数的实例详解
2022/04/01 Python
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA