download:基于Vue3+Vite+TS,二次封装element-plus业务组件mk

后盾代码都是利用的

1.【get形式】使用jquery的get json与后盾交互

前端js代码片段

var data= {
'a': $('input[name="a"]').val(),
'b': $('input[name="b"]').val()
}
$.getJSON($SCRIPT_ROOT + '/_add_numbers',data, function(data) {
$('#result').text(data.result);
$('input[name=a]').focus().select();
});
后端pthon代码如下

ajax,Get形式与js交互(非表单)采纳了flask框架@app.route('/_add_numbers')def add_numbers():

"""Add two numbers server side, ridiculous but well..."""
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
log.info(a)
log.info(b) return jsonify(result=a + b)
2.【万能形式】使用jquery的ajax与后盾交互,设置不同的参数,可能get也可能post

下面的例子用ajax形式,前端代码如下

var data= {

      'a': $('input[name="a"]').val(),      'b': $('input[name="b"]').val()    }

{# $.getJSON($SCRIPT_ROOT + '/_add_numbers',data, function(data) {#}
{# $('#result').text(data.result);#}
{# $('input[name=a]').focus().select();#}
{# });#}

    $.ajax({      type: 'get',      url: $SCRIPT_ROOT + '/_add_numbers',      data: data,      contentType: 'application/json; charset=UTF-8',      dataType: 'json',      success: function(data) {        $('#result').text(data.result);        $('input[name=a]').focus().select();      },      error: function(xhr, type,xxx) {        alert('error ')      }    });

后盾代码不便依然是

ajax,Get形式与js交互(非表单)@app.route('/_add_numbers')def add_numbers():

"""Add two numbers server side, ridiculous but well..."""
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
log.info(a)
log.info(b) return jsonify(result=a + b)
3.用ajax补充一个post形式的例子

前端js如下

function testmethod ()

{  alert('rabbit');  var data = {    "name": "test"  }  $.ajax({    type: 'POST',    url: '/login',    data:data,    contentType: 'application/json; charset=UTF-8',    dataType: 'json',    success: function(data) {      $('#result').text(data.username);    },    error: function(xhr, type) {      alert('error ')    }  });}

后盾代码如下:

ajax ,post形式与js交互(表单提交)

@app.route('/login',methods=['POST'])
def login():
log.info('lalal')
return jsonify(username='xixi',pwd='123')
这样就很轻松的实现了前端与后盾的交互

本质上,前端与后端交互都是通过json实现的

至于表单提交,就不需要写js了,在form表单外面有有一个submit类型按钮,点击时,会主动提交到后盾对应的路由上进行处理。对于表单提交,后盾可能用

?
1
s=request.form.get('username',None)
来捕获前端网页的值。然而如果是非表单提交,则需要用js获取值后,通过data参数传入到后端才行。

实例扩大:

python使用flask与js进行前后台交互的例子

flask与js进行前后台交互代码如下,后盾给前端发数据:

python部分:

-- coding: utf-8 --

from flask import Flask,jsonify,render_template
import json

app = Flask(__name__)#实例化app对象

testInfo = {}

@app.route('/test_post/nn',methods=['GET','POST'])#路由
def test_post():
testInfo['name'] = 'xiaoming'
testInfo['age'] = '28'
return json.dumps(testInfo)

@app.route('/')
def hello_world():
return 'Hello World!'

@app.route('/index')
def index():
return render_template('index.html')

if name == '__main__':
app.run(host='0.0.0.0',#任何ip都可能拜访
port=7777,#端口
debug=True
)
js部分: