Python Flask前后端Ajax交互的方法示例
之前總結(jié)過flask里的基礎(chǔ)知識(shí),現(xiàn)在來總結(jié)下flask里的前后端數(shù)據(jù)交互的知識(shí),這里用的是Ajax
一、 post方法
1、post方法的位置:在前端HTML里,綁定在一個(gè)按鈕的點(diǎn)擊函數(shù)里,或者一個(gè)鼠標(biāo)輸入框點(diǎn)擊離開事件。
(1)數(shù)據(jù)附在URL里(請(qǐng)求路徑),發(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文件(路由啟動(dòng)前面的html的py文件)里:添加一個(gè)路由處理前端post請(qǐng)求
@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請(qǐng)求對(duì)于后端可以很容易實(shí)現(xiàn),只需在后端Python代碼中對(duì)ajax路徑作出處理即可。
- Ajax的post, get方法均可以向后臺(tái)發(fā)送數(shù)據(jù),只是一般用post發(fā)數(shù)據(jù)(做出改變),get請(qǐng)求數(shù)據(jù)(不改變)。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決pycharm remote deployment 配置的問題
今天小編就為大家分享一篇解決pycharm remote deployment 配置的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧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-08
Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法
這篇文章主要介紹了Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
詳解修改Anaconda中的Jupyter Notebook默認(rèn)工作路徑的三種方式
這篇文章主要介紹了詳解修改Anaconda中的Jupyter Notebook默認(rèn)工作路徑的三種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

