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应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
pandas Dataframe行列读取的实例
Jun 08 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
python如何制作缩略图
Apr 30 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
python 制作简单的音乐播放器
Nov 25 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
Python实现获取某天是某个月中的第几周
2015/02/11 Python
Python迭代器和生成器介绍
2015/03/06 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
QML实现钟表效果
2020/06/02 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
土木工程应届生求职信
2013/10/31 职场文书
小学教师事迹材料
2014/01/13 职场文书
单位领导证婚词
2014/01/14 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
保研导师推荐信
2015/03/25 职场文书
初中英语教学反思范文
2016/02/15 职场文书
Golang Web 框架Iris安装部署
2022/08/14 Python