背景:
小魚第一次前端用的VUE,然后前后端的交互調了幾次,記錄下來留給自己下次使用
前端 通過 form.XXX 獲取數據,代碼:
1 <template> 2 <el-form ref="form" :model="form" label-width="80px"> 3 <el-row style="height:40px" type="flex" class="row-bg"> 4 <el-form-item label="賬號" required=""> 5 <el-input v-model="form.telephone" style="width:160px;" oninput="if(value.length>11)value=value.slice(0,11)" placeholder="請輸入賬號" type="number"></el-input> 6 </el-form-item> 7 <el-form-item label="環境" required=""> 8 <el-radio-group v-model="form.env" size="medium"> 9 <el-radio border="" label="dev"></el-radio> 10 <el-radio border="" label="qa"></el-radio> 11 </el-radio-group> 12 </el-form-item> 13 14 <el-form-item> 15 <el-button type="primary" @click="companyCommit" :loading="btnSaveLoading">提交</el-button> 16 </el-form-item> 17 18 </el-row> 19 </el-form> 20 </template>
script代碼如下:
1 <script> 2 3 export default { 4 data() { 5 return { 6 form: { 7 telephone: '1000000000',//設置默認值 8 env: 'test',//設置默認值 9 } 10 }; 11 }, 12 13 methods: { 14 companyCommit() { 15 this.btnSaveLoading = true; 16 let request; 17 request = this.$http.post('/api/xxxx/xxx', this.form) 18 request.then( 19 data => { 20 this.dialogEditVisible = false; 21 window.console.log(data); 22 window.console.log(data.data); 23 this.$layer_message(data.data.data, 'error'); 24 this.fetch() 25 }, 26 res =>this.$layer_message(res.result) 27 ).finally(() => this.btnSaveLoading = false); 28 29 }, 30 }, 31 }; 32 </script>
script通過 this.$http.post 與后端交互,
1.打印日志使用 window.console.log(data); 之前html中的console.log(data) 沒有效果
2.使用post接口,url:/api/xxxx/xxx' ,入參 this.form
3.后端返回結果 data,使用 this.$layer_message(data,'success or error ') 提示框
4. .finally(() => this.btnSaveLoading = false); -- 異常輸出
后端代碼:
1 @blueprint.route('/xxxx', methods=['POST']) 2 def xxxxx(): 3 form, error = JsonParser('telephone', 4 Argument('env', type=int, default='')).parse() 5 6 if error is None: 7 #后端邏輯處理 8 res = 111 9 return json_response(res) 10 print(error) 11 return json_response(message='信息填寫有誤:%s' % error)
1.第一行,接口地址,不在解釋
2.使用 Argument('env', type=int, default='') 防止拿到的值為None
演示:
1.賬戶未填寫,提交
2.提交成功,script this.$layer_message(data.data.data,'error ')
3.提交成功,script this.$layer_message(data.data.data,'success ')