Python Flask前后端Ajax交互的方法示例
之前總結(jié)過flask里的基礎(chǔ)知識,現(xiàn)在來總結(jié)下flask里的前后端數(shù)據(jù)交互的知識,這里用的是Ajax
一、 post方法
1、post方法的位置:在前端HTML里,綁定在一個(gè)按鈕的點(diǎn)擊函數(shù)里,或者一個(gè)鼠標(biāo)輸入框點(diǎn)擊離開事件。
(1)數(shù)據(jù)附在URL里(請求路徑),發(fā)送到后端。
/*前端HTML<script>里:*/ $.post("/js_post/"+ip, data_to_backend, function(data){alert("success "+data)} );
其中ip,data_to_backend是在此代碼前定義好的;data_to_backend一般是一個(gè)json數(shù)據(jù)(data_to_backend={'ip':$(this).parent().prev().text()})
,而data是來自后端的返回?cái)?shù)據(jù)。
#后端py文件(路由啟動前面的html的py文件)里:添加一個(gè)路由處理前端post請求 @app.route("/js_post/<ip>", methods=['GET', 'POST']) def js_post(ip): print ip return ip +" - ip"
點(diǎn)擊按鈕后的效果:
前端定義彈窗數(shù)據(jù)
ip在URL里
(2)數(shù)據(jù)單獨(dú)發(fā)送給后端
var ip = $(this).parent().prev().prev().prev().prev().text(); data_tmp = {'ip':ip, 'text':"success for ajax"}; // data to send to server. $.post('/js_call', data_tmp, function(data){alert(data)});
后端處理程序:
@app.route('/js_call', methods=['GET', 'POST']) def js_call(): print request.values['ip'] print request.values['text'] # to send the command by ssh : os.system("ssh user@host \' restart(command) \' ") return 'ok!!!!'
post獨(dú)立數(shù)據(jù)發(fā)送
二、get方法(同樣可以發(fā)數(shù)據(jù))
$.get('/js_get', {'method':'GET', 'text':"from-html"}, function(data){alert(data)})
后端路由接收處理:
@app.route('/js_get', methods=['GET']) def js_get(): print "method: "+request.values['method']+" --- text: "+request.values['text'] return "get success!"
get成功
數(shù)據(jù)接收成功
注意的是:其中后端py文件的類似request.values['method']
的獲取數(shù)據(jù)的request是一個(gè)Python flask的模塊,需要導(dǎo)入。
總結(jié):
- 在flask框架里,Ajax請求對于后端可以很容易實(shí)現(xiàn),只需在后端Python代碼中對ajax路徑作出處理即可。
- Ajax的post, get方法均可以向后臺發(fā)送數(shù)據(jù),只是一般用post發(fā)數(shù)據(jù)(做出改變),get請求數(shù)據(jù)(不改變)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決pycharm remote deployment 配置的問題
今天小編就為大家分享一篇解決pycharm remote deployment 配置的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06創(chuàng)建Python Docker鏡像的詳細(xì)步驟
Python和Docker是兩個(gè)極其流行的技術(shù),結(jié)合它們可以創(chuàng)建強(qiáng)大的應(yīng)用程序,Docker允許將應(yīng)用程序及其依賴項(xiàng)打包到一個(gè)獨(dú)立的容器中,而Python則提供了豐富的庫和工具來開發(fā)應(yīng)用程序,本文將提供如何創(chuàng)建Python Docker鏡像的全面指南,,需要的朋友可以參考下2023-12-12利用ImageAI庫只需幾行python代碼實(shí)現(xiàn)目標(biāo)檢測
這篇文章主要介紹了利用ImageAI庫只需幾行python代碼超簡實(shí)現(xiàn)目標(biāo)檢測功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法
這篇文章主要介紹了Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10詳解修改Anaconda中的Jupyter Notebook默認(rèn)工作路徑的三種方式
這篇文章主要介紹了詳解修改Anaconda中的Jupyter Notebook默認(rèn)工作路徑的三種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01