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 从远程服务器下载东西的代码
Feb 10 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
Python 查找字符在字符串中的位置实例
May 02 Python
详解python3中zipfile模块用法
Jun 18 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
django form和field具体方法和属性说明
Jul 09 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
python的数学算法函数及公式用法
Nov 18 Python
python实现三种随机请求头方式
Jan 05 Python
python 常用的异步框架汇总整理
Jun 18 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你的验证码安全码?
2007/01/02 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
python实现文件快照加密保护的方法
2015/06/30 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
python pandas修改列属性的方法详解
2018/06/09 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
django从后台返回html代码的实例
2020/03/11 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
Python如何读写二进制数组数据
2020/08/01 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
医药代表个人的求职信分享
2013/12/08 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
Python借助with语句实现代码段只执行有限次
2022/03/23 Python