python和js交互調(diào)用的方法
后臺(tái)代碼都是利用的
1.【get方式】使用jquery的get json與后臺(tái)交互
前端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.【萬(wàn)能方式】使用jquery的ajax與后臺(tái)交互,設(shè)置不同的參數(shù),可以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 ')
}
});
后臺(tái)代碼不便依然是
# 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補(bǔ)充一個(gè)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 ')
}
});
}
后臺(tái)代碼如下:
# ajax ,post方式與js交互(表單提交)
@app.route('/login',methods=['POST'])
def login():
log.info('lalal')
return jsonify(username='xixi',pwd='123')
這樣就很輕松的實(shí)現(xiàn)了前端與后臺(tái)的交互
本質(zhì)上,前端與后端交互都是通過json完成的
至于表單提交,就不需要寫js了,在form表單里面有有一個(gè)submit類型按鈕,點(diǎn)擊時(shí),會(huì)自動(dòng)提交到后臺(tái)對(duì)應(yīng)的路由上進(jìn)行處理。對(duì)于表單提交,后臺(tái)可以用
s=request.form.get('username',None)
來(lái)捕捉前端網(wǎng)頁(yè)的值。但是如果是非表單提交,則需要用js獲取值后,通過data參數(shù)傳入到后端才行。
實(shí)例擴(kuò)展:
python使用flask與js進(jìn)行前后臺(tái)交互的例子
flask與js進(jìn)行前后臺(tái)交互代碼如下,后臺(tái)給前端發(fā)數(shù)據(jù):
python部分:
# -*- coding: utf-8 -*-
from flask import Flask,jsonify,render_template
import json
app = Flask(__name__)#實(shí)例化app對(duì)象
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部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>echarts</title>
<style type="text/css">
html,
body {
width: 100%;
height: 100%;
}
body {
margin: 0px;
padding: 0px
}
div {
float: left;
}
#container {
width: 50%;
height: 100%;
}
#info {
padding: 10px 20px;
}
</style>
</head>
<body>
<div id="container"></div>
<div id="info">數(shù)據(jù)展示:</div>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
<script>
$.ajax({
url: "test_post/nn",
type: "POST",
dataType: "json",
success: function (data) {
console.log(data)
}
})
</script>
</body>
</html>
到此這篇關(guān)于python和js交互調(diào)用的方法的文章就介紹到這了,更多相關(guān)python和js如何交互內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
2款Python內(nèi)存檢測(cè)工具介紹和使用方法
這篇文章主要介紹了2款Python內(nèi)存檢測(cè)工具介紹和使用方法,可以用來(lái)分析Python程序的內(nèi)存使用量,需要的朋友可以參考下2014-06-06
Python中對(duì)象迭代與反迭代的技巧總結(jié)
這篇文章將通過實(shí)例給大家分享Python中對(duì)象迭代與反迭代的技巧,對(duì)大家學(xué)習(xí)或者使用python具有一定的參考借鑒價(jià)值。有需要的下面來(lái)一起看看吧。2016-09-09
Python對(duì)象循環(huán)引用垃圾回收算法詳情
這篇文章主要介紹了Python對(duì)象循環(huán)引用垃圾回收算法詳情,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-09-09
python使用Flask操作mysql實(shí)現(xiàn)登錄功能
這篇文章主要介紹了python使用Flask操作mysql實(shí)現(xiàn)登錄功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05

