【爬虫入门】利用flask框架和echarts实现数据可视化

用flask+echarts打造一个数据可视化大屏幕 文章目录1. big_screen项目说明2. big_screen项目文件布局3. 四大模块核心代码分析3.1 数据准备模块3.2 flask网页服务模块3.3 网页视图模块a. 网页大标题b. 左右两栏的图表c. 中间一栏的图表d. 图表echarts属性设置3.4 static静态元素分析a. 显示时间的函数b. 页面淡入和视图自适应的函数4. 总结 1. big_screen项目说明 源自github上逛到的一个项目,用flask和echarts实现了一个大屏幕显示,运行app.py后,在网页上输入 阅读详情

目录

前言

一、引入flask

二、使用步骤

1.生成本地app

2.返回html

3.使用flask和echarts

 4.传输数据和接受数据

5.调整参数

三、看成果



前言

利用flask框架并利用echarts可以对所得到的数据进行可视化分析(变成各种图:饼图、折线图等)


提示:以下是本篇文章正文内容,下面案例可供参考

一、引入flask

直接pip install flask就可以下载flask框架。

import flask就可以实现对flask框架的引入。 

二、使用步骤

1.生成本地app

代码如下(示例):

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 1

if __name__ == '__main__':
    app.run(debug=True)

点击生成的链接就可以进入到本地的app,此时返回1。

然后我们在route中输入不同的字符,就可以接受不同的参数,以此来访问不同的本地地址。比如,我这里不是"/"而是“/login”,那么我们在网页中的后缀中再追加输入login才可以接受返回值1。而在本来的页面中什么也没有。 

app.run()里面的debug默认为False,当设置为True时,我们对代码改动,那么只需要刷新浏览器页面就可以了,而如果是默认值,那么就是需要重启main函数。

2.返回html

需要额外引入库

from flask import Flask,render_template

首先需要在本项目下,也就是和main函数同文件夹下,创造一个名为:templates的文件夹,然后在其中放入或者创建自己需要的html文件。

return render_template('echarts.html')

这就会把html内容的返回出来。

3.使用flask和echarts

首先打开echarts,选择示例的一个好看的例子,符合此次的分析的图。

在准备好的echarts.html的文件里创造一个画图区域,再去bootcdn中找echarts的script,以下内容建议按模板来,这里我选了一个自定义饼图的图。

https://echarts.apache.org/examples/zh/editor.html?c=pie-custom

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
       option = {
  backgroundColor: '#2c343c',
  title: {
    text: 'Customized Pie',
    left: 'center',
    top: 20,
    textStyle: {
      color: '#ccc'
    }
  },
  tooltip: {
    trigger: 'item'
  },
  visualMap: {
    show: false,
    min: 80,
    max: 600,
    inRange: {
      colorLightness: [0, 1]
    }
  },
  series: [
    {
      name: 'Access From',
      type: 'pie',
      radius: '55%',
      center: ['50%', '50%'],
      data: [
        { value: 335, name: 'Direct' },
        { value: 310, name: 'Email' },
        { value: 274, name: 'Union Ads' },
        { value: 235, name: 'Video Ads' },
        { value: 400, name: 'Search Engine' }
      ].sort(function (a, b) {
        return a.value - b.value;
      }),
      roseType: 'radius',
      label: {
        color: 'rgba(255, 255, 255, 0.3)'
      },
      labelLine: {
        lineStyle: {
          color: 'rgba(255, 255, 255, 0.3)'
        },
        smooth: 0.2,
        length: 10,
        length2: 20
      },
      itemStyle: {
        color: '#c23531',
        shadowBlur: 200,
        shadowColor: 'rgba(0, 0, 0, 0.5)'
      },
      animationType: 'scale',
      animationEasing: 'elasticOut',
      animationDelay: function (idx) {
        return Math.random() * 200;
      }
    }
  ]
};
        myChart.setOption(option);
    </script>
</body>
</html>

 4.传输数据和接受数据

现在我有一个csv的文件,里面有数据内容,现在我要传到html中,怎么办呢?

import pandas as pd

data = pd.read_csv('data.csv')

首先我们先获取csv的内容,同时确定一定要有表头,即:

 确保有name和value,即在设计这个文件时就要加上,因为其中接受的参数名就叫‘name’和‘value’。

如果不是,那么就更改:用rename函数。

data = data.rename(columns={"原来的name":name,"原来的value":value})

然后呢我们需要把这个值传给html让它接收,最后展示。我们知道,这个data接收的是dic类型的数据,那么我们先转换为dic再给,这时候,data为list类型的数据,里面是dic类型。

这时候只需要传入参数并在html中接收就行了。

return render_template('echarts.html',data=data)

 

 双{}接收数据,并把它转为json类型,以适应浏览器来显示。

5.调整参数

 

 min和max根据实际情况来调整。

 亮度默认为0到1,建议为0.5到1。

三、看成果

 这是爬取了某东的爬虫书籍的数据展示。最后,给大家奉献出我的全部代码。

main函数:

from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
import csv
from flask import Flask,render_template
import pandas as pd

app = Flask(__name__)

@app.route('/')
def index():
    pricedomain1 = 0
    pricedomain2 = 0
    pricedomain3 = 0
    pricedomain4 = 0
    pricedomain5 = 0
    t = 1

    with open('book2.csv', mode='r',encoding='utf-8')as f:
        for line in f:
            if t == 1:
                t += 1
                continue

            book_a_price = line.split('¥')[-1].strip()
            if book_a_price == '' or book_a_price == '"拍拍':
                continue
            book_a_price = float(book_a_price)
            if book_a_price < 30:
                pricedomain1 += 1
            elif book_a_price < 60:
                pricedomain2 += 1
            elif book_a_price < 90:
                pricedomain3 += 1
            elif book_a_price < 120:
                pricedomain4 += 1
            elif book_a_price > 120:
                pricedomain5 += 1
    f = open('data.csv', mode='w',encoding='utf-8')
    w = csv.writer(f)
    w.writerow({'name': 'name', 'value': 'value'})
    w.writerow({'0~30':'name', f'{pricedomain1}':'value'})
    w.writerow({'30~60': 'name', f'{pricedomain2}': 'value'})
    w.writerow({'60~90': 'name', f'{pricedomain3}': 'value'})
    w.writerow({'90~120': 'name', f'{pricedomain4}': 'value'})
    w.writerow({'120+~': 'name', f'{pricedomain5}': 'value'})
    f.close()
    data = pd.read_csv('data.csv')
    print(data)
    data = data.to_dict(orient='records')
    return render_template('echarts.html',data=data)

def scrap_data(url, csvname):
    f = open(f'{csvname}.csv', mode='w', encoding='utf-8')
    w = csv.writer(f)
    option = Options()
    option.add_argument('--disable-blinkfeatures=AutomationControlled')
    web = Chrome(options=option)
    page_id = 1

    web.get('https://search.jd.com/Search?keyword=python%E7%88%AC%E8%99%AB&pvid=decc839754e0409cbfdcf18b79991ab3&page=')
    while True:
        time.sleep(2)
        name = web.find_elements(By.XPATH, '//*[@id="J_goodsList"]/ul/li/div/div[3]/a/em')
        price = (web.find_elements(By.XPATH, '//*[@id="J_goodsList"]/ul/li/div/div[2]'))
        for named, priced in zip(name, price):
            w.writerow({named.text: 'named', priced.text: 'priced'})
        time.sleep(2)
        page_id += 1
        if page_id > 5:
            break
        web.find_element(By.XPATH, '//*[@id="J_bottomPage"]/span[1]/a[9]').click()
    f.close()

if __name__ == '__main__':
    url = 'https://search.jd.com/Search?keyword=python%E7%88%AC%E8%99%AB&pvid=decc839754e0409cbfdcf18b79991ab3&page='
    csvname = 'book2'
    scrap_data(url, csvname)
    app.run()


echarts.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
        option = {
  backgroundColor: '#2c343c',
  title: {
    text: '爬虫书籍价格',
    left: 'center',
    top: 20,
    textStyle: {
      color: '#ccc'
    }
  },
  tooltip: {
    trigger: 'item'
  },
  visualMap: {
    show: false,
    min: 0,
    max: 200,
    inRange: {
      colorLightness: [0.5, 1]
    }
  },
  series: [
    {
      name: '价格',
      type: 'pie',
      radius: '55%',
      center: ['50%', '50%'],
      data: {{data|tojson}}.sort(function (a, b) {
        return a.value - b.value;
      }),
      roseType: 'radius',
      label: {
        color: 'rgba(255, 255, 255, 0.3)'
      },
      labelLine: {
        lineStyle: {
          color: 'rgba(255, 255, 255, 0.3)'
        },
        smooth: 0.2,
        length: 10,
        length2: 20
      },
      itemStyle: {
        color: '#c23531',
        shadowBlur: 200,
        shadowColor: 'rgba(0, 0, 0, 0.5)'
      },
      animationType: 'scale',
      animationEasing: 'elasticOut',
      animationDelay: function (idx) {
        return Math.random() * 200;
      }
    }
  ]
};
        myChart.setOption(option);
    </script>
</body>
</html>
解读GitHub上的一个使用flask+echarts数据大屏项目 大概花了2天的时间看完这个项目,一开始看的一头雾水,仔细分析一下,其实用的都是蛮简单的技术,主要用了这三个技术后端:flask可视化:echarts前端:HTML+JavaScript+css后续如果继续深入研究,后端框架可以换成高性能的tornado或者功能更强大的Django,可视化的组件可以换成pyecharts,前端可以使用vue,react框架等。还可以考虑加入sqlite数据库或连接db数据库,打造成一个更完整的项目。 阅读详情

相关推荐

Flask+echarts对本地数据进行数据化展示

flask的下载方法 使用指令安装cmd打开命令提示符: Echart官方网站 官方网站 【static】文件夹(可以为空)存放静态文件(如js和图片),【templates】文件夹(可以为空)存放html文件,【app.py】是主程序] 功能快捷键 撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:Ctrl/Command + Shift + H 无序列表:Ctrl/Command + Sh

db_cjy_2059的博客 491

Flask结合ECharts实现在线可视化效果,超级详细!

一、Flask框架基本使用在开始可视化之前,先让大家对Flask有一个大概了解和基本使用Flask和Django都是Python最常用的两个网站框架,其中Flask更加轻巧,精简,便捷。本...

cainiao_python的博客 4473

Python Flask+MySQL+ECharts构建豆瓣电影数据可视化系统全流程实战

数据可视化是将抽象数据转化为直观图表的核心技术,其原理在于通过视觉编码(如位置、长度、颜色)映射数据维度,从而揭示数据中的模式、趋势和异常。这项技术的价值在于能显著提升数据分析的效率和洞察力,是数据驱动决策的关键环节,广泛应用于商业智能、运营监控和业务分析等场景。本文以豆瓣电影TOP250数据为案例,详细演示了如何利用Python生态中的Flask轻量级Web框架、MySQL关系型数据库以及ECharts前端图表库,构建一个端到端的数据驱动型Web应用。项目完整覆盖了从数据采集(使用requests和Bea

weixin_42610010的博客 250

【Flask+Echarts】使用Flask框架可视化的案例

可视化的基本案例 Echarts简介 准备工作 程序的编写 utils类 app类 index页面类 代码解析 Echarts简介 Echarts 缩写来自 Enterprise Charts(商业级数据图表),是百度的一个开源的数据可视化工具 Echarts 能够绘制 2D 和 3D 的饼状图、柱状图、折线图等几乎所有我们能够见到的图形 Echarts 能够在 PC 端和移动设备上流畅运行,兼容当前绝大部分浏览器 Echarts 是一个纯 JavaScri

m0_54883970的博客 3510

疫情数据可视化应用开发项目:Python爬虫+Flask+ECharts实战

htmltable {th, td {th {pre {简介:本项目“Python爬虫+Flask+ECharts 疫情可视化”结合了多种技术,实现从互联网自动抓取、处理到数据可视化的一体化流程。通过使用Python爬虫技术抓取疫情数据,利用Flask构建API和Web服务,以及ECharts进行数据的动态图表展示,该项目展示了如何通过全栈开发方法实现疫情信息的实时可视化。

weixin_36431814的博客 1038

Python flask + Mysql +Echarts :实现数据可视化(玫瑰图)

【代码】Python flask + Mysql +Echarts :实现数据可视化(玫瑰图)

梦旅人的博客 3079

(毕设1)爬虫+mysql+flask+echarts实现网站数据可视化(附源码)

目录 1. 项目要求与内容 2.数据爬取 2.1分析url,网页源码 2.2编写代码 2.3 数据清洗 3.数据存储 3.1mysql中需要建立的6张表 3.2 建表语句 3.3将2中清洗后的数据通过navicat导入 4.flask web网站的搭建 4.1 使用pycharm建一个flask项目 4.2 后端 4.3 前端 4.4项目框架 5.项目展示 6.源码点击 1. 项目要求与内容 利用python爬取数据并进行清洗和预处理,将清洗后的数据存到mysql数...

qq_45891048的博客 2万+

2、瑞丽-伯纳德对流的拉格朗日拟序结构(FTLE场结果对比)

在中,我简单比较了瑞丽伯纳德对流的FTLE场,但是因为粒子追踪采用的是欧拉方法,所以精度不是很高, 因此与文献中的结果还是有些差别。下面放一张文献中的FTLE场,参数与上篇文章是一致的,Ra = 1e8;Pr = 1;本文将详细的介绍如何得到这样的图片,好吧,其实也不是很详细。总之,先展示以下我个人的结果。可以看出,上图基本上与文献是一致的,因为这里展示的是瞬时场,所以当然不可能是完全一致,至于提取的LCS结构,我在下面也会提及。本着详细介绍的原则,所以这里我很良心的从流场计算开始介绍。

ambu1230的博客 1785

爬虫+MySQL+flask+echarts数据可视化

不得了,竟然把洛克王国给爬了,还把精灵属性值给可视化了,这下子终于知道哪个精灵好了

m0_52149525的博客 3840

实例讲解Simulink CAN通讯丢失故障判定模型搭建及仿真测试验证方法

本文通过ABS通讯丢失故障触发、判定条件Simulink模型的搭建和仿真的讲解,介绍了一种控制器CAN通讯丢失故障判定的方法和建模方法,希望能给相关技术人员带来一定参考和帮助。

qq_43011586的博客 3685

Claude Code 接入 DeepSeek-V4 教程

本文介绍Claude Code的安装配置流程:1) 安装Node.js 18+和Git(Windows);2) 通过npm全局安装@anthropic-ai/claude-code;3) 配置DeepSeek API环境变量(需替换API Key);4) 启动Claude Code或配置VSCode插件。重点包括Linux/macOS和Windows的环境变量设置方法,以及VSCode插件的settings.json配置项。完成配置后即可在终端或VSCode中使用Claude Code功能。

培根芝士的专栏 2007

Flask和Echarts简单实现

Flask和Echarts简单实现 1.新建一个Flask项目 2.导入内容到项目 2.1导入html和assets到指定目录 2.2将html内的路径替换(选中内容Ctrl+R) 将assets添加到所有路径中 2.3将数据库文件复制到venv 2.4将数据库导入项目 3.在首页的对应标签上加入超链接 在对应的内容上加入超链接 4.Echarts应用 4.1将官网下载的Echarts的js导入项目相应路径 4.2在相应的页面引入Echarts文件 通过标签方式直接引入构建好的 echart

weixin_47697162的博客 2399

Redmi K30 5G刷 LineageOS17.1

前言 买手机前就观望了Xdr论坛,看Redmi K30 5G有LineageOS17.1的Rom并且还挺热,应该还不错,就入手了。晚上就刷机了。买了小米就是为了折腾,为发烧而生。 在开始前还请先安装adb工具,因为我自己是做Android开发的,自带adb,不会安装的可以百度“Android安装adb工具”。还有下载刷机文件:百度云 密码:2a0f 刷机的系统是刚买来的低版本,没有升级过Rom,如果高版本慎刷。 还有这个Rom是5G版本的,4G版本的不要刷。 建议没有刷过机器的最好不要尝试,变砖后果自负。

u010436867的博客 1万+

Flask与pyecharts结合绘制网页图表

前文简单介绍了一下MySQL数据库在flask开发中的应用。而本章将简单介绍一下echarts以及Flask与pyecharts结合绘制网页图表。 本章简单介绍了一个用于网页展示可互动性图表的数据可视化库:echarts。并且实现了flask从mysql读取数据 来绘制简单的图表。 是以圣人后其身而身先;外其身而身存。非以其无私邪?故能成其私。 --2023-9-25 进阶篇

2301_78630677的博客 2689

全网首发--Unet3+改进16:在不同位置添加RepLKBlock超大卷积核

本文提出了一种基于大核卷积的神经网络架构RepLKNet,旨在缩小CNN与ViTs之间的性能差距。通过重新审视CNN中的大核设计,研究证明使用少量大卷积核替代多个小核能获得更强大的性能。提出的RepLKNet采用31×31大卷积核,在ImageNet和下游任务上取得了与SwinTransformer相当或更好的结果,同时具有更低延迟。文章详细介绍了实现步骤:(1)创建RepLKBlock模块文件;(2)在模型层中添加注意力机制;(3)在UNet模型中集成RepLKBlock;(4)完成训练流程。该方法展现了

AIcurator的博客 617

FFmpeg + Qt 实现摄像头采集与 MP3 背景音乐 RTSP 推流

在直播或视频监控场景中,我们经常需要将摄像头画面与背景音乐混合后推送到 RTSP 服务器。本文将详细介绍如何使用Qt框架结合摄像头实时采集(Windows 下使用dshow,Linux 使用v4l2视频预览(显示为 QImage)视频 H.264 编码 + RTSP 推流从 MP3 文件读取音频,重采样为 AAC 编码并推流循环播放音频文件解决中文文件路径打开失败的问题文章将剖析每个技术环节的关键代码,并给出完整的类实现。

weixin_45397344的博客 504

【Flask+Echarts】创建基础图例(散点、折线、柱状图、南丁格尔、饼图、堆叠、雷达、热点图)

注:本文着重于使用Flask+Echarts画图,所以不会再数据处理上做较大的操作。 本次所使用到的数据 北京每小时空气质量 房源分布占比 疫情数据 Echarts官网网址 创建基础图例数据展示柱状图北京每小时空气质量柱状图北京每小时空气质量条形图折线图各省份累计确诊折线图各省份疫情信息堆叠图各省份房源数量占比散点图饼图雷达图热力图和地图 数据展示 空气质量数据 房源占比数据 疫情数据 柱状图 北京每小时空气质量柱状图 通过观察数据发现,我们只需要两列数据,分别是时间和每小时PM2_5。.

HR的博客 3192

基于STC8A8K64S4A12的掉电唤醒定时器应用,极大降低产品功耗

通过合理的配置和编程,我们可以充分发挥单片机的功能,实现能效优化和电池寿命延长的目标。其中,掉电唤醒定时器是其一项重要功能,可以在系统处于睡眠状态时通过定时器的计时功能进行唤醒,从而实现对系统功耗的有效控制。使用STC8A8K64S4A12的掉电唤醒定时器功能,我们可以在不影响系统正常工作的情况下,大大降低产品的功耗。通过以上的代码,我们实现了一个简单的掉电唤醒定时器功能。当系统进入睡眠模式后,定时器开始计时,到达预设的唤醒时间后,定时器中断被触发,系统从睡眠模式唤醒,执行相应的操作。

CodeSageX的博客 1090

Flask 运用Echarts绘制图形

ECharts(Enterprise Charts)是一个基于 JavaScript 的开源可视化库,由百度开发和维护。它支持各种图表类型,包括折线图、柱状图、饼图、散点图等,以及支持地理坐标系、时间轴、数据筛选等丰富的交互特性。ECharts的设计注重性能和扩展性,适用于在 Web 页面中创建各种交互式和动态的数据可视化。该开发库目前发展非常不错,且支持各类图形的绘制可定制程度高,Echarts绘图库同样可以与`Flask`结合,前台使用`echart`绘图库进行图形的生成与展示,后台则是Flask通

微软技术分享 1万+

若依框架二次开发——RuoYi-AI 本地部署流程

若依框架二次开发——RuoYi-AI 本地部署流程

bjzhang75的博客 1784

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

flask 数据可视化图形

本文的学习需要读者有一定的Flask的知识基础,初学者请先自学完成Flask简易项目搭建。

2201_75369019的博客 2031

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

从数据爬取到可视化展示:Flask框架与ECharts深度解析

我们详细解析了Flask框架的源码和ECharts的可视化技术。掌握了如何初始化Flask应用、配置路由与视图函数、处理请求与响应、使用中间件。同时,深入学习了ECharts的安装与配置、基本图表类型、样式与交互、数据动态更新等内容。🔹 最后,通过结合Flask与ECharts,我们实现了数据爬取后的可视化展示,为数据分析提供了强有力的工具。希望这些内容能够帮助大家更好地理解和应用Flask与ECharts,实现高效的数据展示!🚀。

switch616的博客 2025

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

没有那么难,基于 Echarts + Python Flask 动态实时大屏轻松可以实现

支持Windows、Linux、Mac等各种主流操作系统;支持主流浏览器Chrome,Microsoft Edge,360等;服务器采用python语言编写,配置好python环境即可。目前开通了技术交流群,群友已超过3000人,添加时最好的备注方式为:来源+兴趣方向,方便找到更快获取资料、入群。方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:大屏。方式①、添加微信号:dkl88191,备注:来自优快云+大屏。支持在每个echarts图表中独立控制定时更新的间隔。对横跨多个行列的格子定义。

m0_59596937的博客 6311

【基础折线图】学习使用flask、echarts搭建数据可视化图表网页

本文中的所有代码,全部都有详细注释,有需要的同学可以在文末领取!数据可视化是数据分析必不可少的环节,我曾经熟练掌握Excel、QuickBI、DataV等数据可视化工具。可是在这越来越卷的环境下,我,一名高级数据分析师,只掌握这些是远远不够的。于是乎,我发现了这个——Apache Echarts。这个工具可以干啥?一个可以让你无限装X的工具,用他制作的图表,不仅能看,而且好看,更重要的是特别好看。用这个工具就可以自己搭建一个数据可视化网站,后端用flask,前端就用echarts绘制图表。

高级数据分析师,分享Python知识 1450

Flask+Echarts搭建全国疫情可视化大屏

本项目适合flask初学者来进行练手,当然前提也要会一些前端的知识,关于Echarts的使用可以去官网进行学习。关于页面的布局,可自由发挥来进行设计,或者在此基础上来进行创新,开发新的功能。

m0_64336780的博客 6578
下一篇: HTML初学笔记
GXcodes
博客等级 码龄5年 15粉丝 6原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值