python和js交互调用的方法


Posted in Python onJune 23, 2020

后台代码都是利用的

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类型按钮,点击时,会自动提交到后台对应的路由上进行处理。对于表单提交,后台可以用

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部分:

<!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如何交互内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
浅述python中argsort()函数的实例用法
Mar 30 Python
python实现感知器算法详解
Dec 19 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
python opencv进行图像拼接
Mar 27 Python
TensorFlow固化模型的实现操作
May 26 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
Python爬虫与反爬虫大战
Jul 30 Python
Django中的JWT身份验证的实现
May 07 Python
Python3 类型标注支持操作
Jun 02 Python
virtualenv介绍及简明教程
Jun 23 #Python
python不同系统中打开方法
Jun 23 #Python
自学python用什么系统好
Jun 23 #Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 #Python
python为什么会环境变量设置不成功
Jun 23 #Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 #Python
解决tensorflow 释放图,删除变量问题
Jun 23 #Python
You might like
利用PHP实现短域名互转
2013/07/05 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
php上传大文件设置方法
2016/04/14 PHP
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
js导出txt示例代码
2014/01/14 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
详解jQuery事件
2017/01/13 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python出现segfault错误解决方法
2016/04/16 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
毕业生自我鉴定
2013/11/05 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
春风行动实施方案
2014/03/28 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
学习雷锋标语
2014/06/25 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS