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

Python的flask接收前台的ajax的post数据和get数据,第1张

概述ajax向后台发送数据: ①post方式 ajax: @app.route("/find_worldByName",methods=['POST']) type:& 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方法

name=request.values.get("cname")


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

 

 下面的代码是整个流程实现:AJAX:
 1 //查询Js 2 function find_res(){ 3     var cname; 4      continent; 5      $.AJAX 6      ({ 7          method:"post",   8          url:"http://localhost:8080/PycharmProjects/Cov/templates/world.HTML?_ijt=q6ulfhihrfp8rqkl8ID73svio3", 9          success:function(data)10          {11              //form表单数据的转化,转化成[ { name:,value:   },{ name:,value:   } ]12              all=$('#find_value').serializeArray()13              // console.log(all['cname'])14              console.log(all[0])15              cname=all[0]['value']16              alert(cname)17          }18      })19     cname=document.getElementByID("cname").value20     continent=document.getElementByID("continent"21     console.log(cname+continent)22      alert("表单数据:   "+"国家:"+cname+ "大洲:"+ continent)23     $.AJAX24     ({25              sync:true,1)">26             url:"/find_worldByname",27              type:'post',1)">28             data:{'cname':cname,'continent':continent},1)">29             success: (data)30             {31                  alert("!!!")32                 table_data=data.data;33                 for(var i=0;i<table_data.length;i++)34                 {35                  console.log(table_data[i]);36                 }37             var appendHTML = "";38         if($(".map-table tbody tr").length>0){39             $(".map-table tbody tr").remove();40         }41          alert("List长度:"+table_data.length)42         var i=0; i<table_data.length; i++43 44             分割日期字符串45             strdt=table_data[i][1].split(" ");46             strdt=strdt[0]+strdt[1]+strdt[2]+strdt[3]47             appendHTML = "<tr align='center' style='color:aquamarine;'><td>"+48             strdt+"</td><td>"+49             table_data[i][2]+"</td><td>"+50             table_data[i][5]+"</td><td>"+51             table_data[i][8]+"</td><td>"+52             table_data[i][9]+"</td><td>"+53             table_data[i][4]+"</td><td>"+54             (i+1)+"</td></tr>"55                 $(".map-table tbody").append(appendHTML);56             }57 58     })59 }
前台HTML:
<table align="center" style="margin:3px"  cellspacing="7px"> 2                 form ID="find_value" 3                     label><Font color="#ff7f50">输入国家:</Font></ 4                     input ="cname" type="text" name placeholder="" value="" 5  6                     >输入大洲: 7                     ="continent" 8  9                     type="button"="查询" onclick="find_res()"10                     ="reset"="重置"11                 form12                 thead13                  tr style="color: #FFB6C1"14                 th>时间15                 >国家16                 >累计确诊17                 >累计治愈18                 >累计死亡19                 >现存确诊20                 >排名21               tr22                 23                 tbody ="bd_data"24                 tbodytable>
Python flask路由:
 1 @app.route("/find_worldByname"def find_worldByname():#获取用户传来的数据 Jsondata = Json.loads(request.form.get('Jsondata')) 5     res=[]get方式 7     cname = request.values.get(cname 8     continent = request.values.get(continentpost方式 continent = request.form.get("continent") cname = request.form.get("cname")12  print(cname+continent)14     res=utils.find_worldByname(cname,continent) res = utils.find_worldByname("美国","") print(res)return Jsonify({data": res})
后台获取数据库数据:
 find_worldByname(c_name,continent): 2     print(c_name)(continent) 4     sql =  SELECT * FROM world WHERE  1=1 "if(c_name!=None): 6         sql=sql+AND ( c_name liKE '%"+c_name+%' )if(continent!= 8         sql=sql+ AND ( continent liKE '%"+continent+%')  9     sql=sql+ AND dt=(SELECT dt FROM world order by dt desc limit 1) order by confirm desc 10 11            "AND continent liKE '%%%%%s%%%%'" \12            " order by dt desc " %(c_name,continent) sql_temp = " SELECT * FROM world WHERE c_name liKE '%"+c_name+"%' "14     res = query(sql)15     List= []for i in res:17          print(i)18         List.append(i)19     return List;20 21 22 def query(sql,*args):23     """24     通用封装查询25     :param sql:26     :param args:27     :return:返回查询结果 ((),())28     29     conn,cursor= get_conn()30     (sql)31     cursor.execute(sql)32     res = cursor.fetchall()33     close_conn(conn,cursor)34     return res

 

总结

以上是内存溢出为你收集整理的Python的flask接收前台的ajax的post数据和get数据全部内容,希望文章能够帮你解决Python的flask接收前台的ajax的post数据和get数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存