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中__call__用法实例
Aug 29 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
python结合API实现即时天气信息
Jan 19 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
Python编程中类与类的关系详解
Aug 08 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
浅谈keras 的抽象后端(from keras import backend as K)
Jun 16 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 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+jQuery制作的列表分页的功能模块
2014/10/14 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
jQuery之网页换肤实现代码
2011/04/30 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
python根据url地址下载小文件的实例
2018/12/18 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
django-初始配置(纯手写)详解
2019/07/30 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
五种Python转义表示法
2020/11/27 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
如何查找网页漏洞
2016/06/22 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
2015年教师国培感言
2015/08/01 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers