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生成器表达式和列表解析
Mar 10 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
python3解析库pyquery的深入讲解
Jun 26 Python
python 实现视频流下载保存MP4的方法
Jan 09 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
Python后台开发Django会话控制的实现
Apr 15 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 Python
Python图像读写方法对比
Nov 16 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
You might like
1 Tube Radio
2021/03/02 无线电
php读取xml实例代码
2010/01/28 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
php字符串函数学习之substr()
2015/03/27 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
简化版手机端照片预览组件
2015/04/13 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
Vue中计算属性computed的示例解读
2017/07/26 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
给老师的一封建议书
2014/03/13 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
国庆节标语大全
2014/10/08 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
离婚民事起诉状
2015/08/03 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis