詳解flask表單提交的兩種方式
一.通用方式
通用方式就是使用ajax或者$.post來提交。
前端html
<form method="post" action="/mockservice" method = "post"> ... <div class="form-group"> <label>data <font style="color:#a94442" size="2"> <input class="form-control" id="data" name="data"> </div> <div class="form-group"> <button id="start" type="submit" class="btn btn-default">Submit  </button> </div> </form>
將操作綁定
$(document).ready(function() { MockTask.start(); }); MockTask ={ startId: "start_mock", start: function(){ $('#'+this.startId).click(function (){ ...var data = $('#data').val(); var form_data = JSON.stringify({ ..."data": data }); MockSubmit.createTask(form_data); }); }, }; MockSubmit = { createTask: function(data){ var url = "/mockservice"; $.post(url,data,function(result){ if (result.code != 'SUCC'){ alert("failed to create a new api.") } else { alert("succ"); } }); } }; function isEmptyString(info) { if (info == null || info == undefined || info.length == 0){ return true; } return false }
這樣通過js來實現(xiàn)提交表單的功能,然后flask后端
@app.route("/mockservice",methods=['GET','POST']) def MockController(): form = MockCreate() if request.method == 'POST': code = request.form['code'] api = request.form['api'] return ...
通用方式的好處就是在其他框架中也適用。而且也并不復(fù)雜。
二.比較正宗的flask方式
前端html:
<form method="post" action="/mockservice" method = "post"> ... <div class="form-group"> <label>data <font style="color:#a94442" size="2"> <input class="form-control" id="data" name="data"> </div> <div class="form-group"> <button type="submit" class="btn btn-default">Submit  </button> </div> </form>
前端這時候可以不用綁定操作了,但需要新建一個form對象,用這種方式的好處就是flask有很多內(nèi)置的方式幫你校驗?zāi)愕奶峤?,一個字:省事!
class MockCreate(Form): user_email = StringField("email address",[validators.Email()]) api = StringField("api",[Required()]) submit = SubmitField("Submit") code = IntegerField("code example: 200",[Required()]) alias = StringField("alias for api") data = TextAreaField("json format",[Required()])
后端這時候就要變成:
@app.route("/mockservice",methods=['GET','POST']) def MockController(): form = MockCreate() code = form['code'] api = form['api'] return render_template("testf.html",api=api,data=code)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- flask中主動拋出異常及統(tǒng)一異常處理代碼示例
- Flask教程之重定向與錯誤處理實例分析
- Flask web開發(fā)處理POST請求實現(xiàn)(登錄案例)
- Flask框架學(xué)習(xí)筆記之使用Flask實現(xiàn)表單開發(fā)詳解
- Flask框架學(xué)習(xí)筆記之表單基礎(chǔ)介紹與表單提交方式
- Python的Flask框架中web表單的教程
- 在Python的Flask中使用WTForms表單框架的基礎(chǔ)教程
- 在Python的Flask框架中構(gòu)建Web表單的教程
- Python Flask-web表單使用詳解
- flask入門之表單的實現(xiàn)
- Flask框架WTForm表單用法示例
- Flask框架學(xué)習(xí)筆記之消息提示與異常處理操作詳解
相關(guān)文章
python使用socket連接遠(yuǎn)程服務(wù)器的方法
這篇文章主要介紹了python使用socket連接遠(yuǎn)程服務(wù)器的方法,涉及Python中socket通信的基本技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-04-04python3 map函數(shù)和filter函數(shù)詳解
這篇文章主要介紹了python3 map函數(shù)和filter函數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08Ubuntu18.04中Python2.7與Python3.6環(huán)境切換
這篇文章主要為大家詳細(xì)介紹了Ubuntu18.04中Python2.7與Python3.6環(huán)境切換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06解決python DataFrame 打印結(jié)果不換行問題
這篇文章主要介紹了解決python DataFrame 打印結(jié)果不換行問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04