本文介紹如何處理ajax請求,
一、處理ajax的post請求
舉例一:
js**舉例如下:
var id =obj.parentnode.parentnode.id;
$.post("/delitem/"+id, {}, function
(data),"json");
對應的flask**舉例如下:
/delitem/
', methods=['
post'])
defdelitem(id):
db.delitem(id)
#業務**
#db.data是python列表物件(元素是字典),返回到瀏覽器後就是js陣列(元素是josn物件
return jsonify()
注意,處理函式可以return兩種格式的資料。一是合法的json格式的字串。
二是通過jsonify 方法將其引數轉為乙個合法的'response'物件,jsonify方法的引數有如下幾種形式:
1)是個字典物件。 到了瀏覽器,js獲取到的就是乙個js物件。
2)如 1個或多個引數名= python物件 的格式, 到了瀏覽器,js獲取到的就是乙個js物件,該js物件有乙個屬性名叫result。如
jsonify(a=1,result=[1,2,3],c="hello")
這時到了瀏覽器,js獲取到的就是乙個js物件,該js物件就有三個屬性,分別是 a, result, c 。其中result屬性的值是個陣列。
舉例2:
js**如下
var id = $("#recordid").val();var name = $("#recordname").val();
var msg = $("#recordinfo").val();
$.post("/additem", , function
(data),"json");
對應的flask**如下:
/additem
', methods=['
post'])
defadditem():
db.additem(request.form.get('id
'),request.form.get('
name
'),request.form.get('
msg'
))
return jsonify()
可以看出,在flask中,通過request.form.get 來獲取ajax發出的請求。 get方法還可以帶第2個引數預設值,如果指定的引數名不存在,有預設值的則返回預設值,沒有的話返回none。注意,如果瀏覽器不是通過ajax發來的post請求,而是通過form提交的,則用request.form[表單元素名]來獲取表單元素中的值。
二、處理ajax的get請求
與post請求類似,區別是:
2)獲取js發來的引數是用 request.args.get方法
Flask web開發 請求攔截和預處理
我們在開發web應用時,往往會需要對所有的url請求進行攔截,做些預處理,比如許可權處理 日誌等統一處理。本文介紹一下flask中的處理機制。我們通過乙個簡單的例子來說明。1 編寫乙個簡單應用 run.py,內容如下 from flask import flask from flask import...
Flask web開發流程
flask專案開發流程 搭建開發環境 pipenv pip pipfile virtualenv 安裝pip和pipenv 建立虛擬環境 pipenv install 為當前專案建立虛擬環境 pipenv shell 啟用虛擬環境 pipenv run python hello.py 執行程式 非虛...
Flask web開發之路三
今天寫乙個url傳參 反轉url 頁面跳轉和重定向 from flask import flask def hello world return hello world article defarticle id return 您請求的引數是 s id if name main 首先,正轉是指由ur...