知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
Flask Web開發(fā)入門(九)之表單處理
發(fā)表時(shí)間:2018-1-10
發(fā)布人:葵宇科技
瀏覽次數(shù):46
本章我們介紹Flask Web開發(fā)中的表單處理
application/json類型請(qǐng)求
- 前臺(tái)請(qǐng)求代碼:
$.ajax({
url: '/add'
, type: 'POST'
, data: JSON.stringify(data.field)
, contentType: 'application/json'
, success: function (response) {
console.log(response);
if (response.code == 0) {
layer.msg('新增成功!');
} else {
layer.alert('新增失敗!')
}
}
})
后臺(tái)捕獲請(qǐng)求,request.data存儲(chǔ)了我們的請(qǐng)求數(shù)據(jù)
后臺(tái)出處理代碼,其中參數(shù)d為dict類型數(shù)據(jù)request.data
def add_monitor(d):
logger.debug('add monitor is %s' % d)
d = json.loads(d)
conn = monitor_db.get_connection_with_url(url)
# Content-Type: application/json
conn.execute(T_Monitor.insert(), [{
'credit_type': d['credit_type']
, 'query_type': d['query_type']
, 'credit_status': d['credit_status']
, 'elapsed_time': int(random.random() * 100)
}])
application/x-www-form-urlencoded類型請(qǐng)求
- 我們稍微修改下前臺(tái)發(fā)送代碼,不指定contentType參數(shù):即指定請(qǐng)求內(nèi)容格式。注意:雖然我們的請(qǐng)求數(shù)據(jù)是JSON字串,但Ajax中沒有指定contentType參數(shù),那么數(shù)據(jù)請(qǐng)求格式仍舊為application/x-www-form-urlencoded
$.ajax({
url: '/add'
, type: 'POST'
, data: JSON.stringify(data.field)
, success: function (response) {
console.log(response);
if (response.code == 0) {
layer.msg('新增成功!');
} else {
layer.alert('新增失敗!')
}
}
})
通過后臺(tái)代碼調(diào)式,我們可以看到request.form存儲(chǔ)了前臺(tái)的請(qǐng)求數(shù)據(jù)如下:
注意上圖紅框部分:
request.form是一個(gè)ImmutableMultiDict類型的對(duì)象
request.form的鍵值key存儲(chǔ)了請(qǐng)求數(shù)據(jù)的JSON字串
request.form的長(zhǎng)度為1
因此,通過上面的代碼分析,我們定義Flask表單處理后臺(tái)代碼實(shí)現(xiàn)如下,其中參數(shù)d是一個(gè)ImmutableMultiDict類型對(duì)象:
# add monitor
def add_monitor(d):
logger.debug('add monitor is %s' % d)
conn = monitor_db.get_connection_with_url(url)
for key in d.keys():
logger.debug("form data is %s" % json.loads(key))
d_dict = json.loads(key)
conn.execute(T_Monitor.insert(), [{
'credit_type': d_dict['credit_type']
, 'query_type': d_dict['query_type']
, 'credit_status': d_dict['credit_status']
, 'elapsed_time': int(random.random() * 100)
}])
實(shí)現(xiàn)效果
源碼參考:https://github.com/ypmc/flask-sqlalchemy-web
相關(guān)案例查看更多
相關(guān)閱讀
- 出入小程序
- 軟件定制
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 網(wǎng)頁制作
- 網(wǎng)站建設(shè)百度官方
- 網(wǎng)站建設(shè)費(fèi)用
- 百度自然排名
- APP
- .net網(wǎng)站
- 生成海報(bào)
- 云南小程序商城
- 企業(yè)網(wǎng)站
- 云南小程序開發(fā)
- 小程序退款
- 關(guān)鍵詞快速排名
- 云南網(wǎng)站建設(shè)特性
- 貴州小程序開發(fā)
- 手機(jī)網(wǎng)站建設(shè)
- 汽車回收系統(tǒng)
- 網(wǎng)站建設(shè)服務(wù)公司
- 云南軟件設(shè)計(jì)
- 文山小程序開發(fā)
- 區(qū)塊鏈
- 網(wǎng)站建設(shè)優(yōu)化
- 網(wǎng)絡(luò)公司排名
- 云南網(wǎng)站建設(shè)價(jià)格
- 云南網(wǎng)站建設(shè)列表網(wǎng)
- 云南小程序開發(fā)報(bào)價(jià)
- 小程序表單
- 云南建設(shè)廳網(wǎng)站