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中的生成器和yield详细介绍
Jan 09 Python
Python中的Classes和Metaclasses详解
Apr 02 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
关于Python作用域自学总结
Jun 10 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
python numpy数组复制使用实例解析
Jan 10 Python
超全Python图像处理讲解(多模块实现)
Apr 13 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
详解Python中openpyxl模块基本用法
Feb 23 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代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
php使用websocket示例详解
2014/03/12 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
js里面的变量范围分享
2020/07/18 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
学习python的几条建议分享
2013/02/10 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
python中的数据结构比较
2019/05/13 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python迭代器常见用法实例分析
2019/11/22 Python
用python对oracle进行简单性能测试
2020/12/05 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
旅游管理实习自我鉴定
2013/09/29 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
看雷锋电影观后感
2015/06/10 职场文书
2016年父亲节寄语
2015/12/04 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书