FastAPI 容器化UV部署

基于FastAPI构建现代Python RESTful API:从异步架构到生产部署 RESTful API是现代Web应用与微服务架构的核心通信接口,它基于HTTP协议,通过标准化的方法(GET、POST、PUT、DELETE)对资源进行操作,实现客户端与服务器之间的解耦与高效交互。其设计遵循无状态、统一接口等原则,确保了系统的可伸缩性与可维护性。在Python生态中,FastAPI框架凭借其对异步IO的原生支持、利用Python类型提示实现的自动API文档生成,以及接近Go语言的高性能,已成为构建现代API服务的首选技术之一。结合SQLAlchemy 2.0的异步ORM与Pydantic 阅读详情

main.py

from fastapi import FastAPI
import uvicorn

app=FastAPI()

@app.get('/')
def index():
    return 'Hello FastAPI'

if __name__ == "__main__":
    uvicorn.run(app,host="0.0.0.0")

Dockerfile

FROM docker.1ms.run/python:3.12-slim

RUN pip install uv -i https://pypi.tuna.tsinghua.edu.cn/simple
COPY unisee /app/unisee
WORKDIR /app/unisee
RUN uv sync

EXPOSE 8000

ENTRYPOINT ["uv","run","main.py"]

podman build -t  test:1.0 .

podman run  --rm --name test p 8001:8000 test:1.0 

curl http://127.0.0.1:8001/ 

>>>'Hello FastAPI'

shader多图叠加变换 shader Shader "Paint3D/AddTexture" { Properties { _MainTex ("Main Texture", 2D) = "white" {} _MainColor("Main Color", Color)=(1,1,1,1) _AddTex0 ("Texture0", 2D) = "white" {} _AddTex1 ("Texture1", 2D) = "white" {} . 阅读详情

相关推荐

缺陷检测-金属表面缺陷检测

1介绍 缺陷检测是工业视觉技术中最重要的组成部分。业务广泛,场景丰富,技术难点高、工作量大。针对不同的场景,选择不同的相机和

huneng1991的专栏 5250

使用UV管理FastAPI项目

本文介绍了使用uv工具管理和部署FastAPI项目的完整流程。首先演示了如何将现有FastAPI项目迁移到uv环境,通过uv初始化项目框架并添加FastAPI依赖。其次展示了使用uv run命令运行FastAPI开发服务器的方法。最后提供了基于Docker的部署方案,包括Dockerfile编写、镜像构建和容器运行步骤,使用uv同步依赖并最终通过FastAPI运行应用。整个过程涵盖了从开发到部署的全生命周期管理。

mx9818的博客 1173

Avellaneda & Stoikov模型实战解析:如何动态调整做市策略参数

本文深入解析Avellaneda & Stoikov模型在动态调整做市策略参数中的应用,重点探讨库存状态、剩余时间、风险系数和订单深度等核心参数的实战技巧。通过加密货币市场的实际案例,展示如何根据市场波动和流动性动态调整参数,提升做市策略的盈利能力和风险控制水平。

weixin_29070861的博客 202

Fastapi之UV安装方式与使用方式

本文提供了在Windows和Linux系统下使用uv工具的完整指南。Windows部分包括下载安装、环境配置、项目初始化、依赖管理及运行项目等12个步骤;Linux部分则包含安装方法、项目初始化、虚拟环境创建等5个关键步骤。两种系统都详细说明了常用操作,如删除缓存文件、安装依赖包、运行项目等命令,并特别提供了国内加速源的安装方式。该指南涵盖了从环境搭建到项目部署的全流程,适合开发者快速上手使用uv工具进行Python项目管理。

python 熊猫 586

从零开始:使用COLMAP与OpenMVS构建高精度三维Mesh模型

本文为零基础新手提供了使用COLMAP与OpenMVS构建高精度三维Mesh模型的完整实战指南。详细介绍了从环境配置、数据采集黄金法则,到COLMAP稀疏与稠密重建、OpenMVS网格生成与纹理映射的每一步操作,并分享了关键的避坑技巧与参数调优建议,帮助读者从二维照片中成功重建出属于自己的三维模型。

metal的博客 505

Transformer入门(一)——结构

Transformer入门介绍篇,分别介绍了Transformer的总体结构与每个模块的实现原理

yeen123的博客 9424

uv:现代 Python 项目管理的高效助手

🚀超快速度:利用 Rust 强大的性能优化,安装依赖时比传统 pip 快上数倍📦内建虚拟环境管理:自动创建并识别.venv环境,无需额外手动配置🔒依赖锁定同步:类似 pip-sync 的功能,确保团队协作中环境的一致性♻️智能缓存和依赖优化:自动维护缓存,加速重复安装过程通过 uv,你可以像使用 Node.js 或 Rust 项目的包管理工具那样,轻松实现从环境创建到依赖管理的一体化操作。

yuanmomoya的博客 2951

chipseeker Y叔

这一次讲解非常重要的peak注释,注释在ChIPseeker里只需要用到一个函数annotatePeak,它可以满足大家各方面的需求。 输入 当然需要我们上次讲到的BED文件,ChIPseeker自带了5个BED文件,用getSampleFiles()可以拿到文件的全路径,它返回的是个named list,我这里取第4个文件来演示。annotatePeak的输入也可以是GRanges对象,你如果用R做peak calling的话,直接就可以衔接上ChIPseeker了。 require(ChIPseeke

生信小博士的博客 1589

uv-fastapi-example:简化 FastAPI 开发的利器

uv-fastapi-example:简化 FastAPI 开发的利器 项目介绍 uv-fastapi-example 是一个基于 FastAPI 的应用程序示例,它采用了 uv 项目管理工具进行管理。该项目遵循 FastAPI 官方文档中的多文件示例,旨在为开发者提供一个结构清晰、易于管理的 FastAPI 应用程序模板。 项目技术分析 uv-fastapi-example 采用的技术栈以 Fa...

gitblog_00651的博客 524

基于Python的船舶AIS数据爬取与分析:从数据采集到可视化实战

本文详细介绍了如何使用Python构建一个完整的船舶AIS数据爬取与分析系统。文章从AIS系统的基本原理讲起,逐步深入到数据采集、存储、清洗、分析和可视化的全流程。我们将使用最新的Python技术栈,包括aiohttp异步爬虫、MongoDB存储、Pandas数据处理以及Pydeck三维可视化等。本文提供了完整的代码实现,并探讨了在实际应用中可能遇到的问题及其解决方案。关键词:AIS数据、Python爬虫、异步IO、数据可视化、海事分析。

2201_76125261的博客 811

SEGGER Embedded Studio初体验

先楫HPM5E00EVK开发环境搭建

hywing's blog 1109

AlgoNote 算法通关手册:LeetCode 0060 排列序列 —— 用阶乘数学法直接锁定第 k 个排列

本篇基于「算法通关手册」题解库(AlgoNote)中 [0060. 排列序列 题解](https://link.gitcode.com/i/9cce5af16140439abdfbf86dd4128781),讲解如何在 $n$ 个数字的所有排列中,**不生成全部排列**,而是通过阶乘数学计算直接定位第 $k$ 个排列。读完本篇,你将掌握「康托展开」式的按位定位思想、阶乘预计算技巧,以及为什么在 $

gitblog_00990的博客 21

YOLOv11的元学习(MAML)few-shot适配-(5样本内快速适应新类别)

本文提出了一种基于元学习和YOLOv11的少样本目标检测方法。首先介绍了元学习的核心概念和MAML算法原理,分析了YOLOv11的架构改进及其在少样本检测中的适用性。针对少样本检测面临的过拟合、特征混淆和定位困难等挑战,提出了基于MAML的解决方案。在实现方面,详细阐述了环境配置、数据预处理和任务采样策略,构建了支持N-way K-shot任务的数据加载器。实验表明,该方法相比传统微调策略可显著提升小样本场景下的检测性能。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 601

FastAPI 容器化部署实战:容器原理、Dockerfile 构建与生产环境部署策略

本文基于 FastAPI 官方文档的部署章节 [FastAPI in Containers – Docker](https://link.gitcode.com/i/237e8c3e5542e3b08d14f55307f4d83f),系统讲解如何为 FastAPI 应用构建 Linux 容器镜像:从容器与容器镜像的基本概念、进程模型出发,完整给出 `Dockerfile` 的逐行构建方法、Dock

gitblog_00982的博客 367

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

FastAPI Docker 部署终极指南:7种容器化方案详解

FastAPI Docker 部署是现代Python Web应用开发中最重要的技能之一。FastAPI作为高性能、易学易用的Python Web框架,结合Docker容器化技术,能够为你的应用提供标准化、可移植的部署方案。本文将详细介绍FastAPI Docker部署的7种实用方案,从基础单文件应用到复杂的生产环境配置,帮助你掌握容器化部署的核心技巧。 ## 为什么选择FastAPI Docke

gitblog_01032的博客 698

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

React + Electron 搭的跨平台音乐播放器:Music You 值不值得试

想把网易云搬进桌面客户端,又不想打开浏览器找网页版?Music You 这个桌面音乐播放器可以直接加入候选:扫码登录,日常功能齐全,界面走 Material Design 3 路线。 ## 它到底是什么 Music You 是一个遵循 Material Design 3(Material You)设计语言的开源桌面音乐播放器,底层数据来自 NeteaseCloudMusicApi,把网易云 P

gitblog_00449的博客 440

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

uv-docker-example完全指南:如何在Docker镜像中高效集成uv构建Python应用

uv-docker-example是一个展示如何在Docker镜像中使用uv的示例项目,专注于本地镜像中项目挂载开发的最佳实践。通过本指南,新手和普通用户将学习如何利用uv在Docker环境中快速构建、部署和运行Python应用,实现高效的开发流程和优化的镜像构建。 ## 为什么选择uv与Docker集成? uv作为一款现代Python包管理器,以其极速的依赖解析和安装速度著称。将uv与Doc

gitblog_01153的博客 1105

Qwen3-ASR-0.6B与Docker集成:容器化部署最佳实践

本文介绍了如何在星图GPU平台上自动化部署Qwen3-ASR-0.6B镜像,实现高效语音转文字服务。通过标准化容器化流程,用户可快速构建稳定、可复现的ASR服务,典型应用于会议实时转录、客服语音质检等场景,显著提升语音处理效率与工程落地速度。

weixin_31869917的博客 159

FastAPI项目模板:一键生成现代化AI后端服务脚手架

在Python Web开发领域,项目脚手架是提升开发效率、确保代码一致性的关键工具。其核心原理是通过预定义的模板和自动化脚本,快速生成包含标准目录结构、依赖配置和开发工具链的初始项目代码。这种技术能显著降低重复性配置工作,统一团队技术栈,对保障软件质量和维护性具有重要价值。尤其在AI应用开发和机器学习模型部署场景中,一个集成最佳实践、生产就绪的脚手架能帮助开发者快速构建类型安全、易于扩展的API服务。本文以cookiecutter-fastapi模板为例,深入解析其如何集成FastAPI、uv、Docker

weixin_30279671的博客 384

【开源剪映小助手】Docker 部署

capcut-mate 是一个基于 Python FastAPI 的视频编辑辅助工具,提供了丰富的视频处理和草稿管理功能。本文档详细介绍如何使用 Docker 对该应用进行容器化部署,包括多阶段构建策略、镜像优化技巧、服务编排配置以及生产环境的最佳实践。

weixin_42238097的博客 748

3D Face HRN开源可部署指南:Apache 2.0协议下商用合规使用说明

本文介绍了如何在星图GPU平台上自动化部署3D Face HRN人脸重建模型镜像,实现从单张2D照片到专业级3D人脸模型(含UV纹理贴图)的端到端重建。该方案适用于虚拟偶像建模、AR试妆、电商3D试戴等典型场景,开箱即用且符合Apache 2.0商用合规要求。

weixin_36238982的博客 836

IoTHackBot apktool+jadx组合技:APK逆向挖掘IoT应用中的硬编码凭据

IoTHackBot 是一款面向 IoT 设备与嵌入式系统的开源安全测试工具集,内置了 **apktool** 与 **jadx** 两大 APK 逆向 Skill。本文带你用这套"组合技"逆向分析 IoT 配套 App(APK),快速挖出其中硬编码的账号、密码、API Key 和通信地址——这些线索往往是拿下整台设备的突破口。 ## 为什么要把 apktool 和 jadx 放在一起用? 很

gitblog_01199的博客 212

Node.js 微服务框架 Moleculer 全景解析:架构、源码结构与工程开发指南

Moleculer 是一个面向 Node.js 的渐进式微服务框架,核心定位是让开发者能够以 Promise/async-await 范式快速构建高效、可靠、可水平扩展的分布式系统。本文以仓库根目录的 [CLAUDE.md](https://link.gitcode.com/i/ffddceab43c25982fff9fb7863b97850) 为骨架,结合 [src](https://link.

gitblog_00887的博客 901

【开源剪映小助手】配置与部署

本文件面向运维与开发人员,系统性梳理 capcut-mate 的全局配置、环境变量、运行时参数与部署流程,覆盖本地与容器化部署、云渲染环境准备、腾讯云 COS 对象存储集成以及监控告警建议。文档同时给出生产环境最佳实践、性能优化与安全配置要点,帮助快速、稳定地上线与维护该服务。

weixin_42238097的博客 538

Camoufox 反检测浏览器 Python 上手指南:无头运行、登录态保持与批量请求的避坑方法

写自动化脚本,跑了没几轮就被风控拦下,多半是浏览器指纹穿了帮:`navigator.webdriver` 暴露自动化、时区和代理出口 IP 对不上、headless 特征明显。Camoufox 是一款基于 Firefox 的反检测浏览器:每次启动从真实流量模型抽取一整套设备指纹,在浏览器 C++ 层直接上报,用 Playwright 驱动,页面拿到的是原生值而不是 JS 补丁。下面按实际任务讲它的

gitblog_01149的博客 1008

d2-admin 的 15 个 Vuex 模块与一行 require.context:零配置自动注册机制拆解

d2-admin 用一个 16 行的聚合文件配合一行 require.context,把 15 个业务模块自动收编进 Vuex store。本文按代码执行顺序走读这套模块自动注册机制,从扫描目录到 lowdb 持久化收口,并总结 4 条可直接复用的目录约定设计原则。 [![d2-admin 中后台系统页面拼图,Vuex 模块化状态管理支撑多主题多标签页](https://raw.gitcode.

gitblog_01103的博客 418
上一篇: PEM证书转PPK用于navicat 连接服务器
下一篇: python uv debug launch.json
恒云客
博客等级 码龄18年 45粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒云客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值