Python的flask接收前臺(tái)的ajax的post數(shù)據(jù)和get數(shù)據(jù)的方法
ajax向后臺(tái)發(fā)送數(shù)據(jù):
①post方式ajax:
@app.route('/find_worldByName',methods=[’POST’])type:’post’,data:{’cname’:cname,’continent’:continent},這是post方式傳值那么在后臺(tái)接收就是:(使用request的form方法)continent = request.form.get('continent')cname = request.form.get('cname')②get方式(url參數(shù))
使用request的values方法
使用request的values方法data:{’cname’:cname,’continent’:continent},name=request.values.get('cname')總結(jié):
這兩種的區(qū)別就是數(shù)據(jù)在ajax data里的發(fā)送方式不同(get和post),所以在后臺(tái)接收的時(shí)候也會(huì)不同。使用request.form.get 方式獲取的是一個(gè)json字符串(在這個(gè)方法會(huì)自動(dòng)轉(zhuǎn)化json對(duì)象,可以直接用key訪問(wèn))使用request.values.get 方式獲取的是通過(guò)url傳遞的get參數(shù)


下面的代碼是整個(gè)流程實(shí)現(xiàn):ajax:
//查詢jsfunction find_res(){ var cname; var continent; // $.ajax // ({ // method:'post', // url:'http://localhost:8080/PycharmProjects/Cov/templates/world.html?_ijt=q6ulfhihrfp8rqkl8id73svio3', // success:function(data) // { // //form表單數(shù)據(jù)的轉(zhuǎn)化,轉(zhuǎn)化成[ { 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('表單數(shù)據(jù): '+'國(guó)家:'+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長(zhǎng)度:'+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); }} })}
前臺(tái)html:
<table cellspacing='7px'><form id='find_value'> <label><font color='#ff7f50'>輸入國(guó)家:</font></label> <input type='text' name='cname' placeholder='' value=''> <label><font color='#ff7f50'>輸入大洲:</font></label> <input type='text' name='continent' placeholder='' value=''> <input type='button' value='查詢' onclick='find_res()'> <input type='reset' value='重置'></form><thead> <tr style='color: #FFB6C1'><th>時(shí)間</th><th>國(guó)家</th><th>累計(jì)確診</th><th>累計(jì)治愈</th><th>累計(jì)死亡</th><th>現(xiàn)存確診</th><th>排名</th> </tr></thead><tbody id='bd_data'></tbody> </table>
Python flask路由:
@app.route('/find_worldByName')def find_worldByName(): #獲取用戶傳來(lái)的數(shù)據(jù) # 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('美國(guó)', '') # print(res) return jsonify({'data': res})
后臺(tái)獲取數(shù)據(jù)庫(kù)數(shù)據(jù):
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:返回查詢結(jié)果 ((),()) ''' conn , cursor= get_conn() print(sql) cursor.execute(sql) res = cursor.fetchall() close_conn(conn , cursor) return res
到此這篇關(guān)于Python的flask接收前臺(tái)的ajax的post數(shù)據(jù)和get數(shù)據(jù)的方法的文章就介紹到這了,更多相關(guān)Python flask接收前臺(tái)ajax post和get數(shù)據(jù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python基于requests庫(kù)爬取網(wǎng)站信息2. vscode運(yùn)行php報(bào)錯(cuò)php?not?found解決辦法3. Python使用Selenium自動(dòng)進(jìn)行百度搜索的實(shí)現(xiàn)4. Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求5. 一文帶你徹底理解Java序列化和反序列化6. 微信小程序?qū)崿F(xiàn)商品分類頁(yè)過(guò)程結(jié)束7. PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能8. JS中6個(gè)對(duì)象數(shù)組去重的方法9. 資深程序員:給Python軟件開(kāi)發(fā)測(cè)試的25個(gè)忠告!10. python中文本字符處理的簡(jiǎn)單方法記錄

網(wǎng)公網(wǎng)安備