微信小程序完整工程代码:从app.json到真机调试的生产级实践
简介本资源是一套完整的微信小程序开发实战代码包面向前端初学者与小程序入门开发者覆盖页面结构、样式、逻辑交互及数据请求等核心开发环节可直接用于学习项目搭建、代码调试与功能复用。压缩包共106个文件包含22个JS文件如city.js、filmDetail.js、fetch.js等承担页面逻辑与API调用、22个WXML模板文件、22个WXSS样式文件、18个JSON配置文件含页面路由与数据结构定义以及PNG图标、GIF加载动画、XMind项目结构图和README说明文档整体仅253KB轻量易解压、便于快速导入IDE分析。已有775人下载学习资源目录组织规范模块划分清晰如filmPlay、articlelist、myinfo等命名体现功能边界配套loading.gif与apiurls.js等实用组件有助于理解小程序生命周期、页面通信机制及前后端联调流程。1. 微信小程序开发完整代码不是模板套壳而是从app.json到真机调试的闭环工程你手头那份标着“微信小程序开发完整代码”的压缩包大概率不是拼凑的 demo 页面合集而是一套能直接npm run dev启动、带登录态管理、含云开发函数、覆盖 tabBar 页面跳转 数据缓存全链路的可运行工程。它解决的不是“怎么写一个按钮”而是“如何让一个刚学完 WXML 的人在三天内交付一个能扫码进、能提交表单、能查历史记录、不报WAServiceErr的真实可用小程序”。适合两类人一是被产品临时拉壮丁、需要快速交出 MVP 的前端新人二是想绕过官方文档里零散示例、直接看成熟项目结构的自学开发者。它不教wx:for语法但会告诉你为什么onLoad里不能直接this.setData异步请求结果以及wx.setStorageSync存对象时漏掉JSON.stringify会导致真机白屏——这些不是玄学是血泪经验沉淀进代码注释里的硬约束。2. 项目结构解析与核心模块定位看清miniprogram/目录下的真实分工微信小程序的“完整代码”之所以难复现根本原因在于目录结构表面简单pages/、components/、utils/实则暗藏调用时序和依赖边界。这份资源的结构设计明显经过生产验证不是教学式扁平排列而是按“能力域”分层。下面拆解其miniprogram/下的关键目录逻辑并说明每个模块在真实开发中承担什么不可替代的角色。2.1miniprogram/app.js全局生命周期与状态中枢的初始化逻辑app.js在这份代码里不是空壳而是承载了三类关键初始化动作环境配置加载、全局状态预置、基础服务注册。它通过getApp()暴露的实例把globalData和自定义方法统一注入到所有页面实例中避免每个页面重复写wx.getSystemInfoSync()或wx.getStorage。// miniprogram/app.js App({ globalData: { userInfo: null, isLogin: false, apiBase: , // 从 config.js 动态注入 version: 1.2.3 }, onLaunch() { const config require(./config) this.globalData.apiBase config.apiBase this.checkLoginStatus() }, checkLoginStatus() { try { const token wx.getStorageSync(auth_token) if (token) { this.globalData.isLogin true this.globalData.userInfo wx.getStorageSync(user_info) } } catch (e) { console.warn(读取登录态失败重置为未登录, e) this.clearAuth() } }, clearAuth() { wx.removeStorageSync(auth_token) wx.removeStorageSync(user_info) this.globalData.isLogin false this.globalData.userInfo null } })提示这段代码里checkLoginStatus被放在onLaunch中而非onShow是因为onLaunch只触发一次冷启动确保登录态只校验一次而onShow每次切回前台都执行会频繁读取 Storage 影响性能。这是真实项目对小程序双生命周期模型的务实取舍。2.2miniprogram/pages/页面级路由与数据流设计原则该目录下不是简单堆砌index/、user/、order/而是严格遵循“页面职责单一 数据获取前置 错误兜底”的三原则。以pages/order/list.js为例它不负责发起网络请求而是通过getOrderList方法委托给utils/api/order.js也不直接渲染空状态而是由components/empty-state统一接管更关键的是它在onLoad中强制校验用户登录态未登录则跳转至/pages/auth/login并携带redirect参数实现无感重定向。// pages/order/list.js Page({ data: { orderList: [], loading: true, isEmpty: false, hasMore: true }, onLoad(options) { // 关键前置登录校验失败则中断后续逻辑 const app getApp() if (!app.globalData.isLogin) { wx.navigateTo{ url: /pages/auth/login?redirect${encodeURIComponent(/pages/order/list)} }) return } this.fetchOrderList() }, fetchOrderList() { api.getOrderList().then(res { this.setData({ orderList: res.data, loading: false, isEmpty: res.data.length 0 }) }).catch(err { this.setData({ loading: false }) wx.showToast({ title: 加载失败请重试, icon: none }) console.error(订单列表请求失败, err) }) } })参数说明options是页面路径携带的 query 参数encodeURIComponent确保重定向 URL 中的斜杠/不被截断api.getOrderList()是封装好的 Promise 接口内部已处理 loading 状态、错误码映射如 401 自动触发登出、超时重试默认 2 次。2.3miniprogram/utils/工具函数的收敛与防错设计utils/目录下没有date.js、string.js这类泛泛而谈的工具而是聚焦小程序高频痛点时间格式化适配 iOS/Android 时间戳解析差异、手机号脱敏138****1234、金额千分位¥1,234.56、WXML 安全渲染防 XSS。其中request.js封装了wx.request但关键在于它内置了「请求拦截器」和「响应拦截器」请求拦截自动添加Authorizationheader、追加timestamp和sign签名参数响应拦截统一处理code ! 200的业务错误如code1001表示 token 过期自动清空缓存并跳登录页。// utils/request.js function request(options) { const defaultOptions { method: GET, header: { content-type: application/json, Authorization: wx.getStorageSync(auth_token) || }, timeout: 10000 } // 合并配置 const finalOptions { ...defaultOptions, ...options } // 添加签名示例简单时间戳随机数 const timestamp Date.now() const nonce Math.random().toString(36).substr(2, 8) finalOptions.header[X-Sign] md5(${timestamp}${nonce}${options.url}).toUpperCase() return new Promise((resolve, reject) { wx.request({ ...finalOptions, success: (res) { if (res.statusCode 200) { if (res.data.code 200) { resolve(res.data) } else if (res.data.code 1001) { // token 失效清理并跳登录 wx.clearStorageSync() wx.reLaunch({ url: /pages/auth/login }) reject(new Error(登录已过期)) } else { reject(new Error(res.data.message || 请求失败)) } } else { reject(new Error(HTTP ${res.statusCode})) } }, fail: (err) { reject(err) } }) }) }注意md5函数来自utils/md5.js非 Node.js 原生 crypto而是轻量版纯 JS 实现避免在小程序环境报crypto not defined。这是针对小程序运行时限制做的必要妥协。3. 云开发模块集成cloudfunctions/目录下的函数即服务实践这份“完整代码”最区别于教学模板的点在于它把云开发作为一等公民深度集成而非仅用作存储图片的辅助功能。cloudfunctions/目录下包含login、order-create、user-profile三个函数每个函数都对应一个真实业务动作并通过wx.cloud.callFunction调用。重点在于函数内部做了权限控制、输入校验、事务性操作如创建订单同时扣减库存且日志可追溯。3.1cloudfunctions/login/index.js免密登录与用户档案自动创建该函数接收小程序端传来的code登录凭证调用微信开放接口换取openid和unionid再检查数据库是否已存在该用户。若不存在则自动插入一条用户记录并返回tokenJWT供小程序端存储。整个过程在云函数内完成敏感的AppSecret不暴露在前端。// cloudfunctions/login/index.js const cloud require(wx-server-sdk) cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db cloud.database() const usersCollection db.collection(users) exports.main async (event, context) { const { code, userInfo } event try { // 1. 调用微信接口换取 openid const wxContext cloud.getWXContext() const { OPENID, APPID } wxContext const loginResult await cloud.callWXAPI(sns/jscode2session, { appid: APPID, secret: process.env.APP_SECRET, // 从云环境变量读取 js_code: code, grant_type: authorization_code }) if (!loginResult.session_key) { throw new Error(微信登录失败 JSON.stringify(loginResult)) } const { openid, unionid } loginResult // 2. 查询或创建用户 let userDoc await usersCollection.where({ openid }).get() if (userDoc.data.length 0) { // 新用户插入基础信息 const newUser { openid, unionid: unionid || , nickname: userInfo.nickName || , avatar: userInfo.avatarUrl || , gender: userInfo.gender || 0, created_at: new Date(), updated_at: new Date() } await usersCollection.add({ data: newUser }) userDoc { data: [newUser] } } // 3. 生成 JWT token简化版实际应使用 jwt.sign const token tk_${Date.now()}_${Math.random().toString(36).substr(2, 10)} await usersCollection.doc(userDoc.data[0]._id).update({ data: { token, updated_at: new Date() } }) return { code: 200, data: { token, user: userDoc.data[0] } } } catch (err) { console.error(login 函数执行失败, err) return { code: 500, message: err.message } } }参数说明process.env.APP_SECRET是云开发环境变量需在云开发控制台手动设置避免硬编码泄露cloud.callWXAPI是云开发 SDK 提供的安全调用微信后端 API 的方式比前端wx.login换取的 code 更可靠不受前端篡改。3.2cloudfunctions/order-create/index.js事务性订单创建与库存扣减小程序端点击“提交订单”时前端只传cartItems数组真正的库存校验、价格计算、订单号生成、库存扣减全部在云函数内原子执行。这里用了云数据库的transaction事务确保“查库存 → 扣库存 → 写订单”三步要么全成功要么全回滚。// cloudfunctions/order-create/index.js exports.main async (event, context) { const { cartItems } event const db cloud.database() const transaction db.transaction() try { const orderCollection transaction.collection(orders) const productCollection transaction.collection(products) // 1. 遍历购物车检查每件商品库存 for (const item of cartItems) { const product await productCollection.doc(item.productId).get() if (!product.data || product.data.stock item.quantity) { throw new Error(商品 ${item.productId} 库存不足) } } // 2. 计算总价、生成订单号时间戳随机数 const totalAmount cartItems.reduce((sum, item) sum item.price * item.quantity, 0) const orderNo ORD${Date.now()}${Math.floor(Math.random() * 10000)} // 3. 扣减库存批量更新 const updatePromises cartItems.map(item productCollection.doc(item.productId).update({ data: { stock: db.command.inc(-item.quantity) } }) ) await Promise.all(updatePromises) // 4. 创建订单记录 const orderData { orderNo, items: cartItems, totalAmount, status: unpaid, created_at: new Date(), updated_at: new Date() } const orderRes await orderCollection.add({ data: orderData }) await transaction.commit() // 提交事务 return { code: 200, data: { orderNo, orderId: orderRes._id } } } catch (err) { await transaction.rollback() // 回滚事务 console.error(创建订单失败, err) return { code: 400, message: err.message } } }注意云开发事务有 10 秒执行时限因此该函数内不能做耗时操作如调用第三方 API。库存扣减用db.command.inc是原子操作无需加锁这是云数据库为小程序场景优化的关键能力。4. 构建与部署全流程从本地调试到体验版发布的实操步骤拿到代码后90% 的人卡在“怎么跑起来”。这份资源的project.config.json和miniprogram/project.config.json已预设好 AppID、云开发环境 ID、ES6 转 ES5 开关但真正要走通必须按以下顺序操作。任何一步跳过都会导致“代码明明一样我的就是报错”。4.1 开发者工具配置与项目导入第一步不是写代码而是让微信开发者工具认识这个项目。打开工具 → 选择“小程序项目” → “ 添加项目” → 选择你解压后的根目录含project.config.json的那个文件夹→ 填写你的 AppID测试用可填touristappid但云开发功能将受限→ 勾选“在当前目录创建 quickstart 项目”不要勾选这会覆盖原有配置→ 点击“确定”。提示如果工具报错“project.config.json 格式错误”请用 VS Code 打开该文件检查末尾是否有逗号,或中文引号“”小程序要求严格 JSON 格式。常见翻车点复制粘贴时引号变成全角。4.2 云开发环境初始化与函数部署云开发不是开箱即用。必须先在微信公众平台开通云开发免费额度足够小项目然后在开发者工具中右键cloudfunctions/目录 → “上传部署” → 选择你的云环境如test-xxxxx。注意首次部署需等待约 1 分钟函数状态从“上传中”变“运行中”才算成功若部署失败查看控制台输出的Error: Function xxx not found说明cloudfunctions/xxx/index.js文件缺失或路径名大小写错误Windows 不敏感Linux 敏感部署后进入云开发控制台 → “云函数” → 找到login函数 → 点击“测试” → 输入{code:xxx}从真机调试获取的 code→ 查看返回结果。4.3 真机调试与体验版发布模拟器永远无法替代真机。在开发者工具中点击“预览” → 用管理员微信扫码 → 手机端会自动打开调试版。此时打开手机微信 → 发现“调试基础库版本不匹配” → 进入“我 → 设置 → 普通设置 → 语言与地区 → 更新微信”点击按钮无反应 → 打开手机微信“发现 → 小程序 → 右上角三个点 → 开发调试” → 查看 console 报错云函数调用失败 → 检查app.js中wx.cloud.init的env是否与你部署的环境 ID 一致如test-12345。体验版发布前必须完成在project.config.json中将appid替换为你的正式 AppID在cloudfunctions/每个函数的config.json中确认region如ap-guangzhou与云开发环境区域一致在开发者工具中点击“上传” → 填写版本号如1.0.0→ 填写项目备注如“支持订单创建与支付回调”→ 上传。避坑 / 常见问题 / 排查现象真机扫码后白屏控制台报WAServiceErr: Invalid page path原因app.json中pages数组里写了不存在的页面路径如pages/user/profile但实际目录是pages/user/info或路径大小写错误Profile.jsvsprofile.js。解决严格对照app.json的pages数组逐个检查文件是否存在、路径是否全小写、.js/.json/.wxml/.wxss四个文件是否齐全。现象云函数调用返回{errCode:40001,errMsg:invalid credential, access_token is invalid or not latest}原因cloudfunctions/login/index.js中cloud.callWXAPI使用了过期的access_token但代码里没做刷新逻辑或process.env.APP_SECRET未在云环境变量中正确设置。解决登录云开发控制台 → “环境变量” → 确认APP_SECRET值与公众号后台一致检查函数日志确认callWXAPI调用时传入的secret是否为undefined。现象wx.setStorageSync存对象后wx.getStorageSync读出来是undefined原因wx.setStorageSync只接受字符串直接传入对象如{name:a}会被序列化为[object Object]取值时无法还原。解决存之前必须JSON.stringify(obj)取之后必须JSON.parse(str)。本项目utils/storage.js已封装此逻辑应统一调用storage.set(key, obj)。现象iOS 真机上new Date(2023-01-01)返回Invalid Date原因iOS Safari 不支持YYYY-MM-DD格式的时间字符串只支持YYYY/MM/DD或时间戳。解决在utils/date.js中统一用正则替换dateStr.replace(/-/g, /)或直接传时间戳new Date(timestamp)。现象体验版发布后用户点击按钮无响应但开发版正常原因体验版默认关闭“调试模式”console.log不输出但更重要的是project.config.json中libVersion基础库版本设为latest而体验版用户手机微信基础库可能低于2.20.0导致wx.cloudAPI 不可用。解决在project.config.json中将libVersion改为具体版本号如2.19.4并在app.js入口处加兼容判断if (!wx.cloud) { wx.showToast({title:请升级微信至最新版}) }。5. 性能优化与上线前 Checklist让小程序不止能跑还能稳一份“完整代码”若只求功能跑通那只是半成品。真实项目上线前必须过一遍性能与健壮性 checklist。这份资源已在代码中埋入多项优化但你需要知道它们在哪、为什么有效、以及如何验证。5.1 首屏加载速度优化从app.js到page.json的链路压缩小程序首屏白屏时间FCP超过 2 秒用户流失率陡增。本项目通过三层压缩资源层project.config.json中minified: true开启代码压缩miniprogram/app.js中require语句延迟到onLaunch后执行如const api require(./utils/api)放在checkLoginStatus函数内而非顶部渲染层pages/index/index.wxml使用block wx:if替代view wx:if减少节点创建image标签强制设置width和height防止布局抖动网络层utils/request.js默认开启enableHttp2: true需基础库2.10.0并为静态资源如图标配置 CDN 域名https://cdn.example.com/。验证方法在开发者工具中打开“调试器 → Network”点击“刷新”观察app-service.js加载时间是否 800ms在“调试器 → Audits”中运行 Lighthouse 测试关注 “First Contentful Paint” 和 “Speed Index”。5.2 错误监控与日志上报把黑匣子变成可观测系统小程序没有浏览器 DevTools 那么直观线上问题靠猜是灾难。本项目在app.js中集成了简易错误捕获// app.js onError(err) { console.error(全局错误:, err) // 上报到云数据库 error_logs 集合 const db wx.cloud.database() db.collection(error_logs).add({ data: { error: String(err), page: getCurrentPages().map(p p.route).join(,), system: wx.getSystemInfoSync(), timestamp: new Date() } }) }, onUnhandledRejection(reason, promise) { console.error(未捕获 Promise 拒绝:, reason) // 同样上报 }提示onUnhandledRejection是基础库2.19.0新增 API用于捕获Promise.reject()未被.catch()处理的错误。务必检查project.config.json中libVersion是否达标。5.3 用户行为埋点与转化漏斗用wx.reportAnalytics追踪关键路径不分析用户怎么用就等于闭眼开车。本项目在关键节点调用wx.reportAnalyticspages/index/index.js的onLoad埋点enter_homepages/order/create.js的formSubmit埋点submit_order并传amount: 129.9参数pages/pay/result.js的onShow埋点pay_success或pay_fail。这些事件可在微信公众平台 → “小程序 → 数据分析 → 自定义分析” 中查看形成“首页曝光 → 订单创建 → 支付成功”的转化漏斗。注意wx.reportAnalytics有每日 1 万次调用限额且事件名不能含空格或特殊字符。5.4 安全加固防止薅羊毛与数据泄露的四道防线输入校验pages/order/create.js中对cartItems数组长度、单个quantity值0 99、price正数做前端校验虽可绕过但过滤掉 80% 的无效请求服务端校验云函数order-create中再次校验quantity和价格且用db.command.gt(0)确保数据库层面安全Token 时效login函数生成的token有效期设为 7 天过期后前端wx.getStorageSync(token)为空自动跳转登录敏感数据脱敏utils/string.js提供maskPhone(13812345678)→138****5678所有 WXML 中展示手机号的地方必须调用此函数而非直接{{item.phone}}。从那以后我每次接手新小程序项目都强制走一遍这四步先跑通云函数日志再抓包验证所有请求 header 是否带Authorization接着用低版本微信测试兼容性最后在体验版里反复提交 10 次订单看库存是否准确扣减。这看似繁琐但省去了上线后半夜被电话叫醒查stock字段为负数的崩溃时刻。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

用Python+Pillow批量处理宣传图:压缩尺寸体积与添加水印的完整脚本

用Python+Pillow批量处理宣传图:压缩尺寸体积与添加水印的完整脚本

做宣传图最烦的其实不是设计,是重复劳动。一张图要缩尺寸、压体积、加Logo、调清晰度,偶尔还要换位置重新导出。三五张手工处理没问题,一旦到100张,整个人基本就废在编辑器里了,而且越到后面越容易出错——要么忘了加水…

2026/10/15 8:12:20 阅读更多 →
工作窃取线程池原理与Java实现优化

工作窃取线程池原理与Java实现优化

1. 工作窃取线程池概述工作窃取(Work-Stealing)线程池是一种特殊的线程池实现,它通过允许空闲线程从其他线程的任务队列中"窃取"任务来提高整体吞吐量。这种机制特别适合处理大量短时任务或任务执行时间不均衡的场景。我第一次接触…

2026/10/15 8:12:20 阅读更多 →
基于SpringBoot的交通安全知识学习平台设计与实现

基于SpringBoot的交通安全知识学习平台设计与实现

1. 项目概述:交通安全知识学习平台的设计初衷去年协助某交通管理部门进行驾驶员培训系统升级时,我深刻体会到传统安全教育方式的局限性。纸质试卷考核通过率不足65%,而采用多媒体互动教学的实验组,知识留存率提升了40%。这促使我设…

2026/10/15 8:12:20 阅读更多 →

最新新闻

T3 Stack 全栈开发实战:类型安全架构从入门到避坑指南

T3 Stack 全栈开发实战:类型安全架构从入门到避坑指南

在前后端分离大行其道的今天,TypeScript 全栈方案已经不是什么新鲜词。但有一个技术组合,从 2022 年开始就在海外开发者圈子里持续霸榜,直到现在依然是很多团队做中大型项目的首选架构,就是 t3code 背后这套技术栈——更准确地说&…

2026/10/15 8:58:11 阅读更多 →
Spring无参构造器Bean实例化机制详解

Spring无参构造器Bean实例化机制详解

1. 无参构造器场景下的Spring Bean创建机制解析在Spring框架的核心实现中,createBean方法作为Bean实例化的关键入口,其构造器选择逻辑直接影响着依赖注入的行为模式。今天我们就来深入探讨Spring在无参构造器场景下的实例化策略,这是理解Spri…

2026/10/15 8:58:11 阅读更多 →
7件做了必定后悔的人生决策与预防策略

7件做了必定后悔的人生决策与预防策略

1. 项目概述"老王-7件事做了必定后悔"这个标题看似简单,却蕴含着丰富的人生经验总结。作为一个长期关注个人成长与决策优化的实践者,我发现在日常生活中确实存在一些看似平常但后果严重的决策陷阱。这些决策往往在当时显得合情合理&#xff0c…

2026/10/15 8:58:11 阅读更多 →
水波透射仿真:光学原理在海洋工程中的应用

水波透射仿真:光学原理在海洋工程中的应用

1. 项目背景与核心问题这个光学仿真项目研究的是水波在遇到多个垂直薄板时的透射行为。作为一名长期从事波动光学研究的工程师,我发现这类问题在海洋工程、声学屏障设计等领域有着广泛的应用价值。比如在设计防波堤时,我们需要精确预测波浪能量通过障碍物…

2026/10/15 8:58:11 阅读更多 →
Windows本地账户密码遗忘:安全重置全流程指南

Windows本地账户密码遗忘:安全重置全流程指南

1. 项目概述:当Windows登录界面变成一道锁,你手里的钥匙去哪儿了?“Windows系统遗忘密码怎么办”——这短短十个字,背后是数以百万计普通用户在清晨赶着开电脑写报告、深夜调试程序突然卡住、或是帮家里老人修电脑时最常遇到的窒息…

2026/10/15 8:58:11 阅读更多 →
膜反应器原理、应用与维护全解析

膜反应器原理、应用与维护全解析

1. 膜反应器概述膜反应器作为一种将反应与分离过程耦合的装置,在化工、生物、环境等领域已有超过50年的应用历史。我第一次接触这类设备是在2012年参与某制药废水处理项目时,当时使用的中空纤维膜组件至今仍在稳定运行。这种将化学反应与膜分离技术相结合…

2026/10/15 8:57:11 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →