各位用户为了找寻关于python和js交互调用的方法的资料费劲了很多周折。这里教程网为您整理了关于python和js交互调用的方法的相关资料,仅供查阅,以下为您介绍关于python和js交互调用的方法的详细内容
后台代码都是利用的
1.【get方式】使用jquery的get json与后台交互
前端js代码片段
? 1 2 3 4 5 6 7 8var
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代码如下
? 1 2 3 4 5 6# 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方式,前端代码如下
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23var
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 '
)
}
});
后台代码不便依然是
? 1 2 3 4 5 6# 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如下
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20function
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 '
)
}
});
}
后台代码如下:
? 1 2 3 4 5# ajax ,post方式与js交互(表单提交)
@app.route(
'/login'
,methods=[
'POST'
])
def login():
log.info(
'lalal'
)
return
jsonify(username=
'xixi'
,pwd=
'123'
)
这样就很轻松的实现了前端与后台的交互
本质上,前端与后端交互都是通过json完成的
至于表单提交,就不需要写js了,在form表单里面有有一个submit类型按钮,点击时,会自动提交到后台对应的路由上进行处理。对于表单提交,后台可以用
? 1s=request.form.get(
'username'
,None)
来捕捉前端网页的值。但是如果是非表单提交,则需要用js获取值后,通过data参数传入到后端才行。
实例扩展:
python使用flask与js进行前后台交互的例子
flask与js进行前后台交互代码如下,后台给前端发数据:
python部分:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28# -*- 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部分:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54<!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"
>数据展示:</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>
到此这篇关于python和js交互调用的方法的文章就介绍到这了,更多相关python和js如何交互内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/faq/python/12788.html