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 20 Python
一些Python中的二维数组的操作方法
May 02 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
python字符串常用方法
Jun 14 Python
python爬取指定微信公众号文章
Dec 20 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 Python
Jupyter Notebook安装及使用方法解析
Nov 12 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
You might like
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
yii上传文件或图片实例
2014/04/01 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
javascript一点特殊用法
2008/05/28 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
js数组去重的hash方法
2016/12/22 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
深入浅出vue图片路径的实现
2019/09/04 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
Python selenium文件上传方法汇总
2020/11/19 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
如何利用python生成MD5并去重
2020/12/07 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
夜班门卫岗位职责
2013/12/09 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
主题婚礼策划方案
2014/02/10 职场文书
优秀教师工作感言
2014/02/16 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
招标授权委托书样本
2014/09/23 职场文书
担保书范文
2015/01/20 职场文书
排查MySQL生产环境索引没有效果
2022/04/11 MySQL