精华内容
下载资源
问答
  • 本文实例讲述了python flask框架实现传数据js的方法。分享大家供大家参考,具体如下: 首先要清楚后台和前端交互所采用的数据格式。 一般选JSON,因为和js完美贴合。 后台返回的数据进行序列化 在/...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    后台Action如下定义方法:

    public String method(@RequestParam(value = "ids", required = true) String[] ids) {
    	
    	return null;
    }

    这个方法需要一个字符串数组作为参数,那么看看页面JS如何封装

    var ids = new Array();
    ids.push('1');
    ids.push('2');
    $.ajax({
    	...
    	data:{
    		ids : ids.toString()
    	}
    });

    spring MVC会自动帮我们封装ids的数据

    转载于:https://my.oschina.net/simpleton/blog/699906

    展开全文
  • 数据得用python跑出来,然后我又不想自己写个服务器传数据给浏览器,这里就用到了Eel库,https://github.com/ChrisKnott/Eel Github上有非常详细的讲解 import eel @eel.expose def getdata(start_station,destination...

    数据得用python跑出来,然后我又不想自己写个服务器传数据给浏览器,这里就用到了Eel库,https://github.com/ChrisKnott/Eel Github上有非常详细的讲解

    import eel
    @eel.expose
    def getdata(start_station,destination,date):
        data = Get_tickets(start_station,destination,date).tickets_info
        result = ""
        for d in data:
            html = '''<div class = "content">
            <ul class="tickets_info">
                <li class="first_li">%(train_code)s</li>
                <li>%(from_station)s</li>
                <li>%(to_station)s</li>
                <li>%(start_time)s</li>
                <li>%(arrive_time)s</li>
                <li>%(used_time)s</li>
                <li>%(business_seat)s</li>
                <li>%(first_seat)s</li>
                <li>%(second_seat)s</li>
                <li>%(gjrw)s</li>
                <li>%(dw)s</li>
                <li>%(yw)s</li>
                <li>%(rz)s</li>
                <li>%(yz)s</li>
                <li>%(wz)s</li>
                <li>%(qt)s</li>
                <li class="last_li">%(remark)s</li>
            </ul>
            <ul class="price">
                    <li class="first_li"></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li>%(business_price)s</li>
                    <li>%(first_seat_price)s</li>
                    <li>%(second_seat_price)s</li>
                    <li>%(gjrw_seat_price)s</li>
                    <li>%(dw_seat_price)s</li>
                    <li>%(yw_seat_price)s</li>
                    <li>%(rz_seat_price)s</li>
                    <li>%(yz_seat_price)s</li>
                    <li>%(wz_seat_price)s</li>
                    <li>%(dw_seat_price)s</li>
                    <li class="last_li"></li>
            </ul>
            </div>     '''%d
            result += html
        return result
    

    装饰器修饰的函数就可以在js中引用

    <script src="/eel.js"></script>

    html页面中还要加一个js文件的引用
    引入eel.js才能完成与python的交互
    getdata方法,封装了传参,获取数据和生成html代码
    返回值为string,内容为html代码,
    考虑前后端分离,html代码是不在python中产生的,但是这里为了方便快捷,就把前端代码生产放在后端执行,耦合度很高,单这只是写来复习的小例子,暂时不考虑太多代码复用和封装的问题

    if __name__ == '__main__':
        eel.init("F:\Python复习\\12306")
        eel.start("12306.html")

    在主函数中,把前端文件夹绝对路径放到eel.init(文件夹路径)函数中,初始化页面内容
    eel.start(制定网页文件名)会自动打开指定网页
    这里写图片描述
    在这里操作页面可以用Eel与后端代码完成交互
    在此时,前端页面是可以被修改的,修改后刷新页面跑的就是实时的页面代码
    但是如果后端代码要改,就得重启程序测试
    这里写图片描述
    这就是以网页控制爬虫和网页图形化显示爬虫结果,
    至于最后一列丑陋的css,明天再搞

    展开全文
  • python序列化

    2021-05-21 15:44:51
    一.为什么要序列化? 序列就是一种数据格式或者类型的统称,序列化就是要将某种数据格式转化成...这个时候用python给我们提供的各种函数可以实现,就是python已经我们做好了这个工具,直接拿来用就行。 json模块 js

    一.为什么要序列化?
    序列就是一种数据格式或者类型的统称,序列化就是要将某种数据格式转化成序列。python有元组、字典、列表等数据类型,这些数据类型都有具体属性可以方便进行文本处理或者取值。但是在开发之中,数据要进行传输,这些类型不能够直接通过网络传输或者文本存储,因为传过去之后是个字符串,没办法转换回来。这个时候序列化就专门为此而生,让数据能够转换自如。

    二.如何进行序列化
    这个时候用python给我们提供的各种函数可以实现,就是python已经给我们做好了这个工具,直接拿来用就行。

    json模块
    json模块有四个函数json.dumps(),json.loads();json.dump(),json.load()。两两配对,前面一组是针对网络传输,后面一组是针对文件传输。
    分别举例:

    import json
    
    dic = {
        'name':'ligen',
        'age':'25'
    }
    
    str_dic = json.dumps(dic)
    
    dic_2 = json.loads(str_dic)
    
    import json
    
    dic = {
        'name':'ligen',
        'age':'25'
    }
    
    f = open('a.json','w')
    
    json.dump(dic,f)
    f.close()
    
    f = open('a.json')
    dic2 = json.load(f)
    f.close()
    print(dic2)
    
    展开全文
  • 直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获取企业完整的地理位置,这样传给API后结果会更加准确。 百度企业信用提供了企业基本信息查询的功能。希望通过Python爬虫获取企业基本...
  • 解决方案: 通过F12获取headers,传给requests.get()方法 2、IP限制 :网站根据IP地址访问频率进行反爬,短时间内进制IP访问 解决方案: 1、构造自己IP代理池,每次访问随机选择代理,经常更新代理池 2、购买开放代理或...
  • 正好最近解除了python机器学习里面的线性回归,可以用sklearn在后端训练后把数据传给前端,下面就来简单实现一下 1. 项目结构 和正常的Flask结构差不多,blueprints放个蓝图echarts。static为静态资源目录,template

    Flask + Echarts + sklearn 做个简单的线性回归

    Echarts官网的线性回归示例是用了echarts-stat.js这个插件https://github.com/ecomfe/echarts-stat,在前端完成训练模型和预测的操作

    正好最近解除了python机器学习里面的线性回归,可以用sklearn在后端训练后把数据传给前端,下面就来简单实现一下

    1. 项目结构

    和正常的Flask结构差不多,blueprints放个蓝图echarts。static为静态资源目录,templates为模板目录,config.py里是相关环境配置,extension.py为第三方拓展如flask-sqlalchemy等,__init__.py里放个工厂函数。main.py为程序入口。

    image-20210408141108277

    1.1 配置文件

    上来先写配置,BaseConfig为基本配置,有SECRET_KEY为后期作session准备的当然这个小例子用不到,SQLALCHEMY_TRACK_MODIFICATIONS设置为False。如果设置成 True (默认为None),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。

    import os
    
    
    class BaseConfig:
        SECRET_KEY = os.urandom(24)
        SQLALCHEMY_TRACK_MODIFICATIONS = False
    
    
    class DevelopmentConfig(BaseConfig):
        SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:mysql@localhost:3306/demo?charset=utf8'
    
    
    class TestingConfig(BaseConfig):
        pass
    
    
    class ProductionConfig(BaseConfig):
        pass
    
    
    config = {
        'development': DevelopmentConfig,
        'testing': TestingConfig,
        'production': ProductionConfig,
        'default': DevelopmentConfig
    }
    

    1.2 拓展文件

    from flask_sqlalchemy import SQLAlchemy
    
    db = SQLAlchemy()
    
    
    def init_ext(app):
        db.init_app(app)
    

    1.3 模板文件

    就一个图,加一个div就行

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="/js/jquery.min.js"></script>
        <script src="/js/echarts.min.js"></script>
    </head>
    <body>
    <div id="regression" style="height: 600px; width:800px"></div>
    <script src="/js/myEcharts.js"></script>
    </body>
    </html>
    

    1.4 视图文件

    先写这个样子,后面再陆续补充

    from flask import Blueprint, render_template
    
    echarts = Blueprint('echarts', __name__)
    
    
    @echarts.route('/')
    def index():
        return render_template('index.html')
    

    1.5 初始化文件

    导入Flask,视图,拓展,配置,一一加载,注册。最终返回app

    from flask import Flask
    
    from demo.blueprints import init_blueprints
    from demo.extension import init_ext
    from demo.config import config
    
    app = Flask(__name__, static_url_path='/')
    
    
    def create_app(config_name):
        app.config.from_object(config.get(config_name))
        init_blueprints(app)
        init_ext(app)
    
        return app
    

    1.6 程序入口

    传入系统配置并接受工厂函数的app实例

    import os
    
    from demo import create_app
    
    config = os.getenv('FLASK_EBV', 'development')
    app = create_app(config)
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    上面都完成后就可以把框架跑起来了

    2. 完善后端视图文件

    2.1 使用sklearn训练模型

    为了把散点图和折线图(其实是直线)放在一起,预测的数据必须和原数据一样是二维列表形式,也就是一个坐标列表

    from sklearn.linear_model import LinearRegression
    
    
    def get_linear_regression():
        # 数据太多了,暂时省略
        data = [[...]]
        reg = LinearRegression()
        data_X = [[row[0]] for row in data]
        data_y = [row[1] for row in data]
        # 训练模型
        reg.fit(data_X, data_y)
        temp = reg.predict(data_X)
        data_y_predict = []
        for i in range(len(temp)):
            data_y_predict.append([data_X[i][0], temp[i]])
        # 一元函数表达式
        expression = f'y = {round(reg.intercept_, 3)}x + {round(reg.coef_[0], 3)}'
    
        return data, data_y_predict, expression
    

    2.2 定义接口

    因为我不太喜欢把js和html和css放在一起,所有我决定拆分它们,单独写js。那么这时候jinja2模板就用不到了,后端传数据的方式改为Ajax请求接口

    定义一个接口

    @echarts.route('/echartsData')
    def get_echarts_data():
        data, data_y_predict, expression = get_linear_regression()
    
        echarts_data = {
            'data': data,
            'data_y_predict': data_y_predict,
            'expression': expression
        }
        return echarts_data
    

    3.编写前端js文件

    3.1 发起Ajax请求

    let echartsData;
    
    $.ajax({
        url: '/echartsData',
        async: false,
        success: function(data) {
            echartsData = data
        }
    })
    

    这里的async设为false,方便将数据赋值为全局变量echartsData

    3.2 echarts部分

    let divEle = $('#regression')[0]
    
    let myEcharts = echarts.init(divEle)
    
    // 线性回归
    option = {
        title: {
            text: '线性回归',
            subtext: '使用sklearn',
            textStyle: {
                color: 'red',
                fontStyle: 'italic'
            },
            subtextStyle: {
                color: 'black',
                fontSize: 15
            },
            link: 'https://echarts.apache.org/v4/examples/zh/editor.html?c=scatter-linear-regression',
            sublink: 'https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html',
            left: 'center'
        },
        legend: {
            left: '25%',
            top: '5%'
        },
        tooltip: {
            type: 'axis',
            axisPointer: {
                type: 'cross'
            }
        },
        xAxis: {
            type: 'value'
        },
        yAxis: {
            type: 'value',
            min: 2
        },
        series: [
            {
                name: 'scatter',
                type: 'scatter',
                data: echartsData.data
            },
            {
                name: 'line',
                type: 'line',
                data: echartsData.data_y_predict,
                // 不展示特征,如圆点
                showSymbol: false,
                // 图标标注
                markPoint: {
                    itemStyle: {
                        // 透明色
                        color: 'transparent'
                    },
                    label: {
                        show: true,
                        position: 'left',
                        formatter: echartsData.expression,
                        fontSize: 15,
                        color: '#333'
                    },
                    data: [
                        {
                            name: '自定义像素点',
                            x: '50%',
                            y: '30%'
                        }
                    ]
                }
            }
        ]
    };
    
    myEcharts.setOption(option)
    

    4. 结果展示

    在这里插入图片描述

    展开全文
  • 今天写代码用python处理完数据传给php服务器后,发现接收不到数据,因为是跨域,所以加了消息头:header('Access-Control-Allow-Origin:*');但是并没有什么卵用,后来不停地百度,东拼西凑终于找到了解决方案。 ...
  • Django传递数据给JS « Django session Django Ajax » 有时候我们想把一个 list 或 dict等 JSON对象 到网页的 javascript,用 JS 进行处理,比如用 js 将数据可视化显示到网页上。 请注意:如果不...
  • 要做一个excel的导入和导出,先说导入吧,我的方案有两个,一是使用jQuery读取excel表中的数据后,将数据以json字符串的形式传给视图,在视图中直接操作数据库,主要的难点是使用js读取excel,代码如下: ...
  • 由于我在 vuehr 项目中已经配置了端口转发,将数据转发到 Spring Boot 上,因此项目启动之后,在浏览器中输入 http://localhost:8080 就可以访问我们的前端项目了,所有的请求通过端口转发将数据传到 Spring Boot 中...
  • 最近在做一个neo4j前端可视化的任务,...后台采用Python的Django框架,主要用于接收前端的请求,从neo4j数据库获取数据,并将数据传给前端服务器展示。这里只展示ECharts的用法以及自己的一些总结,为以后打下一个...
  • 比如,后端用Python写的,前端是js,那么后端如果一个dic字典前端,前端肯定不认。 所以就有了序列化这个概念。 什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫...
  • 微信小程序之WebSocket

    2017-09-28 16:14:28
    另外用户自己也要接收对方操作时实时过来的数据,这样才不至于重复点中同一个格子。简单讲,就是你要上报操作服务器,而服务器也要实时你推消息。为了简化整个模型,我们规定玩家必须轮流来点击,玩家A点完后...
  • 但是是传给Presenter而不是View。Presenter获取到Model变更的消息以后,通过View提供的接口更新界面。 关键点: 1. View不再负责同步的逻辑,而是由Presenter负责。Presenter中既有应用程序逻辑也...
  • 主要技术实现:Python爬虫/IP代理池/JS接口爬取/Selenium页面爬取 申明:本脚本没有涉及某东账号登录,没有大批量抓取某东敏感信息,仅抓取商品名称和价格,如有任何敏感问题,请联系我删除。 README文档导航 若您...
  • Java、JavaScript、C/C++、Python、Kotlin、Dart、Go、Erlang 3 通用-common(1.5 ~ 1.6) 设计模式、重构 4 服务端开发-backend(1.7 ~ 1.11) 框架、架构、中间件 5 运维-sre(1.12) Linux、ELK、Dokcer、...
  • 拍照并传给对方 WebRTC基础实践 - 10. 总结 一个Java对象占用多少内存空间 SSH隧道连接内网MySQL ThreadLocal简介 Java与机器学习 JVM异常处理机制 禁止iframe引用网页 CSS高级技巧:自动省略左侧文本 guava简介 ...
  • AnyTrans for iOS 7.0.4.20190107:AnyTrans是一款 Mac OS X 上的iOS设备数据传输及数据管理工具,比苹果官方的iTunes使用起来更加顺手,并不是说iTunes多不好用,但是多一个选择还是不错的。AnyTrans的操作界面简单...
  • freemarker总结

    2015-01-04 14:22:05
    方法变量通常是基于出的参数计算值在数据模型中定义。 6、 用户自定义FTL指令:宏和变换器 7、 节点 节点变量表示为树型结构中的一个节点,通常在XML处理中使用。 在模板里对sequences和hashes初始化 ...

空空如也

空空如也

1 2
收藏数 22
精华内容 8
关键字:

python数据传给js

python 订阅