- 博客(38)
- 收藏
- 关注
原创 Flask 中的 login_view、endpoint 与 Blueprint 一次讲透(新手不再绕)
login_view是 Flask-Login 用来指定:当用户未登录却访问受保护页面时,应该跳转到哪个“登录视图”的配置项。'auth'是蓝图名是一个逻辑模块名称login是Python 函数名用来处理/login请求Blueprint 是 Flask 的“模块化机制”,用来把一个大项目拆成多个功能模块。login_view:未登录用户的兜底跳转入口endpoint:Flask 内部识别页面的唯一 IDauth.loginauth蓝图下的login视图函数。
2025-12-14 21:35:28
668
原创 第一章:绪论
机器学习(Machine Learning)本质上是一种从数据中自动学习经验的技术。一句话总结:给机器一堆“例子”(数据),让它自己发现规律,并用于预测新情况。生活中大量应用机器学习:手机的人脸识别抖音推荐ChatGPT(大模型)自动驾驶医学影像诊断很多人会把机器学习理解为“写规则给电脑”,但真实情况恰恰相反:📌不是程序员写规则,而是机器自己找规则。这也是机器学习的魅力所在。
2025-11-18 07:33:14
702
原创 机器学习入门(前言)
假设你想让电脑学会分辨西瓜是否好瓜。颜色大小敲声纹理是否好瓜青绿大清脆清晰是乌黑小浑浊模糊否用已有数据训练规则 → 用规则预测未来未知情况它就像学生做题:看例题 → 总结规律 → 做新题。机器学习的目标是从数据中学习规律,并对未知数据做出正确预测。核心要点:机器学习是让计算机从数据中学习经验三大要素:数据、模型、算法三类任务:监督学习 / 无监督学习 / 强化学习假设空间是所有候选模型的集合泛化能力决定模型是否“学以致用”过拟合与欠拟合是模型训练中常见陷阱。
2025-11-18 07:27:06
645
原创 第16章 拓展阅读——Flutter 与 鸿蒙
Dart 是 Google 推出的现代化编程语言,特点:面向对象强类型支持异步 async/awaitJIT 和 AOT 双编译特性说明分布式能力可跨设备协同运行(如手机控制电视)方舟编译器自研编译器,运行效率提升明显多端部署一套代码运行多设备全栈自研包含系统内核、框架、编译器等技术关键点FlutterGoogle 跨平台框架,基于 Dart,跨 Android/iOS/Web/桌面Dart简单易学,既 JIT 又 AOT,适合 UI 框架鸿蒙。
2025-11-17 18:00:39
505
2
原创 第15章 综合项目——网上订餐系统
这是一个典型的移动互联网应用:用户可以在手机端查看附近店铺、浏览菜品、添加购物车、提交订单。首页 → 店铺列表 → 店铺详情 → 菜品详情 → 加入购物车 → 提交订单 → 展示订单涉及技术:Activity + Fragment 页面切换RecyclerView 列表展示SharedPreferences / SQLite 本地存储购物车HTTP 请求加载店铺和菜品数据JSON 数据解析Intent 页面跳转与参数传递本章实现了一个完整的网上订餐项目,涉及:Activity 页面跳转。
2025-11-17 17:47:08
913
原创 第14章 多媒体应用开发
类型特点API音频背景音乐 / 本地音乐播放短音效游戏按键音、提示音SoundPool简单视频播放快速播放视频,控制简单VideoView专业视频播放灵活、可自定义 UI功能API推荐场景背景音乐BGM、歌曲播放按键音效SoundPool快速短音效简单视频VideoView普通播放专业视频自定义播放器。
2025-11-17 17:41:53
847
原创 第13章 图形图像处理
类名作用Bitmap存储图像像素的数据对象用于加载图片(decode 解析)Paint设置画笔样式(颜色、大小、填充)Canvas画布,用来绘制 Bitmap、文字、图形。
2025-11-17 17:31:11
1016
原创 第12章 案例阶段——智能聊天机器人
推荐:Android Studio 最新版最低 SDK:21语言:Java(本例)需要依赖 RecyclerView:在。
2025-11-16 08:35:48
456
原创 第11章 网络编程
HTTP(HyperText Transfer Protocol)是浏览器与服务器通信的协议。请求方式作用GET从服务器获取数据POST提交数据给服务器典型访问流程:客户端发起请求服务器处理请求服务器返回数据(如 JSON)客户端解析数据并展示通过本章你已经掌握:✔ HTTP 网络请求(GET/POST)✔ HttpURLConnection 的使用✔ WebView 浏览网页与执行 HTML✔ WebView 打开 JS✔ JSON 数据解析。
2025-11-16 08:28:38
990
原创 第10章 Android事件处理
Android 不允许子线程修改 UI,否则会报错。handler.post() 把任务丢回主线程执行。(重写 Activity/View 的方法)用户输入事件(点击、长按、拖动)常用于按钮、输入框是否获取焦点。按下实体按键(返回键/音量键)Thread 与 UI 的通信。长按(Long Click)本章还包含 Android。消息机制(Handler)适用于:按键、触摸、焦点等。来让子线程与主线程通信。系统事件(按键、返回键)点击屏幕(Click)焦点变化(Focus)
2025-11-16 08:21:26
539
原创 第9章 服务
必须主动 stopService() 或 Service 自己 stopSelf()Activity 通过 bindService() 与 Service 通信。通过 Binder 调用服务的方法(如 playMusic())Activity 获取服务实时数据(如计步)即使切换 Activity,服务仍继续运行。使用场景少见(用于大型项目/系统服务)。点“播放音乐”→ 背景开始播放 mp3。使用 startService()点“停止音乐”→ 停止播放。远程服务通信(AIDL)Service 是一种。
2025-11-16 08:14:31
772
原创 第7章 内容提供者与内容观察者
App 自己数据库的变化(如果通过 Provider 暴露)一旦数据变化,ContentObserver 会收到回调。某些数据需要跨应用共享(如联系人、短信、媒体信息)。封装数据,使得外部可以通过。:访问别的应用暴露的数据。Android 应用默认是。的,数据不能直接互相访问。
2025-11-15 15:41:57
449
原创 第6章 阶段案例——记事本
本章完成了一个完整的 Android 记事本应用涉及:✓ SQLite 数据库✓ Activity 跳转✓ ListView 显示数据✓ CRUD 操作✓ Intent 传递数据这是进入 Android 项目实战的重要基础案例,为后续学习 RecyclerView、内容提供器、MVVM 等奠定基础。如果你需要,我还能帮你生成:📌美化版 UI(仿 MIUI / 微信)📌RecyclerView 版本的记事本(更漂亮)📌可搜索、置顶、加星标的增强版记事本📌。
2025-11-14 15:11:47
620
原创 第五章《Android 数据存储》
存储方式数据格式特点示例场景文件存储文本/二进制简单易用账号密码保存键值对(XML)轻量级,自动管理登录信息、设置SQLite表结构(数据库)强大查询能力通讯录、订单表网络存储云端同步聊天记录、用户资料✨熟练掌握和SQLite的使用。实战项目中常组合使用两种存储方式(例如:登录信息用 SP,数据用 DB)。下章建议学习内容提供器与系统共享数据机制。
2025-11-14 07:27:07
668
原创 第四章 程序活动单元Activity
任务栈(Task Stack)用于保存 Activity 的打开顺序(后进先出 LIFO)。按返回键将依次关闭当前 Activity。Fragment 是 Activity 中的“子模块”界面,可在一个 Activity 中组合多个 Fragment。📌 常见用途:左右分屏(如列表 + 详情)Tab 页(每个页面一个 Fragment)内容核心类/方法功能说明生命周期控制 Activity 生命周期启动/关闭页面跳转与销毁数据传递Activity 之间传值数据回传返回结果。
2025-11-13 19:59:00
1022
原创 第二章 Android常见界面布局
比 LinearLayout 更灵活,但复杂布局管理困难。决定了应用中各个界面元素(View)如何在屏幕上排列。掌握布局,是 Android UI 开发的基础。常用于重叠布局,如图片 + 文字叠加效果。推荐取代 RelativeLayout。Android Studio 推荐的。组织控件,类似 HTML 表格。是 View 的子类,但作用是。性能高、层级少(避免嵌套)。在 Android 中,后添加的控件显示在上层。通过拖拽设计器直观布局。方向顺序排列子控件。(测量和绘制开销大)。适合表格或登录界面。
2025-11-13 18:23:04
698
原创 Android资源管理与使用(第一章补充)
res/├─ mipmap → R.mipmap.ic_launcher 仅图标└─ assets/ 无 R id getAssets().open(...)
2025-11-12 10:41:47
299
原创 Android Studio移动应用基础教程(前言)
让我们暂时放下对未知的焦虑,一起翻开这本书的第一页。从搭建环境开始,写下第一行“Hello World”,你将正式踏上这段激动人心的创造之旅。如果你的答案是“是”,那么恭喜你,你已经站在了一扇通往无限可能的大门前。你将不是被动的读者,而是积极的构建者,跟随我的指引,一步步亲手完成一个又一个功能模块,最终汇聚成属于你自己的完整应用。你将不再对“开发一个App”感到神秘和畏惧,而是拥有了将想法付诸实践的能力。世界需要你的创意,而代码,就是你实现它的超能力。最重要的是,你将建立起作为一名开发者的。
2025-11-10 21:46:25
290
原创 从零开始搭建 flask 博客实验(5)
本篇教程为你的博客系统新增了一个用户资料页功能:支持通过路径查看用户详情。在导航中区分登录状态,提升用户体验。为用户模型与展示模板打下基础。
2025-11-05 15:06:54
489
原创 从零开始搭建 flask 博客实验(4)
通过本篇教程,你的博客系统新增了:安全的用户认证系统(注册/登录/登出)密码的哈希存储机制会话管理机制(通过 Flask-Login)用户模型的完善以及数据库迁移支持接下来,可以继续扩展:用户资料页、权限管理、文章的“作者”关联、评论管理、后台管理系统等。
2025-11-05 15:01:33
771
原创 从零开始搭建 flask 博客实验(3)
通过第三篇教程,作者将博客项目从“有前端 + 路由”阶段,推进到“有数据库支持”的完整阶段。这是一个重要里程碑:一个真实可用的博客系统离不开数据存储。我个人的几点收获:从实践来看,尽早决定好数据库方案有利于后续功能扩展。模型设计阶段不要拖延,越早清晰定义结构,对后续开发越有益。使用 migration 工具不仅是好习惯,也几乎是必备。虽然教程以 MySQL 为例,但在开发初期采用 SQLite + 再切换策略也很常见。
2025-11-05 14:39:49
1079
原创 从零开始搭建 flask 博客实验(2)
当用户请求表单时,将这个钥匙给用户,然后用户提交表单的时候,将这个钥匙和我们服务器中的钥匙比对一下,如果安全的话就接收用户表单里的信息,如果比对不成功,那说明这个用户提交过来的数据有问题喽,拒绝他!如果方法上的路由发生了变化,那么模板上的链接就失效了呀,为了解决这个问题,可以使用 url_for。判断表格填写的是否正确,是否有未填写,格式是否有错误这些问题有集成好的方法供我们使用,我们只用写一个规定方法格式的文件即可。对模板中的基类进行一个修改,因为上面跳转只有到首页的,添加一个跳转至登录界面的。
2025-10-29 18:13:41
872
原创 Flask入门学习指南
Flask是一个微框架,核心简单但可通过扩展增加功能。它使用Werkzeug作为WSGI工具库,Jinja2作为模板引擎。
2025-10-29 14:31:08
1452
原创 机器学习入门CH0前言(西瓜书)
最近打算每天抽出一些时间,逐层学习,带着大家一起从小白成长为专家(后续肯定要补充其它内容,要学的东西还有很多,沉下心来)。2.“算法是死的,思想才是活的,欲行此道,则务须把握算法背后的思想脉络,无论创新科研还是应用实践,皆以此为登堂入室之始”。好了,话不多说,希望日后的每篇文章能够以最短的时间与篇幅帮助辅助你的学习。1.“信息搜索是理工科学生必备的本领,只需知道自己在‘找’什么,就一定能找到该材料”。限于笔者水平有限,内容有误之处,还请大家见谅,多多指出,必当修改完善!7.4 半朴素贝叶斯分类器。
2025-10-19 21:24:28
852
原创 《窄门》——靠近你,就靠近了痛苦,远离你,就远离了幸福...
靠近你,就靠近了痛苦;远离你,就远离了幸福...窄门之窄,容不下二人行;窄门之宽,又容下芸芸众生。如今少了你,我看到的世间万物,都觉得是从你那里窃取来的。最令我伤心的不是你松开了握着我的手,而是我感到,我自己的手在你手中并不舒服,即便你不松开,我也会松开,所谓理性之爱,你让我怎么回答呢?
2025-09-11 21:37:43
2756
原创 github入门指南
注册 -> 逛一逛 -> 创建仓库 -> 安装Git -> 克隆 -> 修改 -> 提交 -> 推送。完成这个流程,你就已经打败了全球 80% 的纯新手了!接下来就是不断重复和探索更多功能(如 Issues, Projects, Wiki)。祝你学得开心!&有所收获!
2025-09-10 21:27:05
1265
原创 动态规划篇(背包问题)
很明显,f[i][j] 就是 g[i][j] 中的最大值。01 背包根据是否选择第 i 件物品,也就是第 i 件物品选 0 个还是 1 个,把 g[i][j] 划分成了 A B 两部分,分别求出这两个部分的最大值,然后两者取最大值就是整体 g[i][j] 的最大值,也就求出了 f[i][j]。完全背包问题也是根据第 i 件物品的选择数量,把 g[i][j] 划分成不同的部分,分别求出各个部分的最大值,取各个部分最大值中的最大值,就是整体 g[i][j] 的最大值,也就求出了 f[i][j]。
2025-09-10 20:18:45
2474
原创 ACM基础算法
此处的做法是是对原来的数轴下标进行排序,再去重,为什么要去重呢,因为本题提前考虑了前缀和的思想,其实很简单,就是我们需要求出的区间内的和的两端断点不一定有元素,提前加如需要求前缀和的两个端点,有利于我们进行二分搜索,其实二分搜索里面我们一般假定有解的,如果没解的话需要特判,所以提前加入了这些元素,从而导致可能出现重复元素。此处的解决办法就是开辟额外的数组存放原来的数组下标,或者说下标标志,本文是原来上的数轴上的非连续点的横坐标。离散化的本质,是映射,将间隔很大的点,映射到相邻的数组元素中。
2025-03-19 22:58:07
983
原创 贪心(算法竞赛)
对于当前遍历到的位置 x,如果它在 最远可以到达的位置 的范围内,那么我们就可以从起点通过若干次跳跃到达该位置,因此我们可以用 x+nums[x] 更新 最远可以到达的位置。根据题目的描述,只要存在一个位置 x,它本身可以到达,并且它跳跃的最大长度为 x+nums[x],这个值大于等于 y,即 x+nums[x]≥y,那么位置 y 也可以到达。在遍历的过程中,如果 最远可以到达的位置 大于等于数组中的最后一个位置,那就说明最后一个位置可达,我们就可以直接返回 True 作为答案。步到达数组的最后一个位置。
2024-10-13 16:15:35
415
原创 极限、连续、可导、可微之间的关系(高等数学下册)
例如,一个折线或者有角的函数在顶点处是连续的,但不可导。它们不仅要求函数连续,还要求函数在某点的变化趋势明确。可导函数在定义域内每一点都存在唯一的切线。,都意味着函数在该点存在唯一的切线;可微意味着函数在该点的变化趋势是明确的。意味着函数在该点的变化趋势是明确的。多元函数,可微要求所有的偏导数连续。函数在某点可微,则该点一定存在极限。一元函数,可微和可导是相同的概念。,这是一个比可导更强的条件。,这自然保证了极限的存在。从而保证了函数的连续性。可导和可微是更强的条件。
2024-04-21 21:14:50
37205
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅