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 collections模块实例讲解
Apr 07 Python
利用python代码写的12306订票代码
Dec 20 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
Pandas 同元素多列去重的实例
Jul 03 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
django用户登录验证的完整示例代码
Jul 21 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
keras 权重保存和权重载入方式
May 21 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
python调用win32接口进行截图的示例
Nov 11 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
一个简单的python程序实例(通讯录)
2013/11/29 Python
Python中列表(list)操作方法汇总
2014/08/18 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
python实现多张图片拼接成大图
2019/01/15 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
python定义具名元组实例操作
2021/02/28 Python
应用化学专业职业生涯规划书
2014/01/22 职场文书
采购部经理岗位职责
2014/02/10 职场文书
党支部综合考察意见
2015/06/01 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
导游词之西安骊山
2019/12/20 职场文书
python爬虫--selenium模块
2021/03/31 Python
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python