自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周周的博客

一起交流学习呀

  • 博客(744)
  • 收藏
  • 关注

原创 第4章Web表单 session

与其他多数扩展不同,Flask-WTF无须在应用层初始化,但是它要求应用配置一个密钥。-- CSRF 隐藏字段 --> < input type = " hidden " name = " csrf_token " value = " 随机生成的加密字符串 " > <!-- 标签 --> < label for = " name " > What is your name?

2026-02-16 20:55:44 452

原创 第3章模板

Jinja2模板就是一个包含响应文本的文件初始化 Flask-Bootstrap 之后,就可以在应用中使用一个包含所有 Bootstrap 文件和一般结构的基模板。怎么用 Flask-Bootstrap 给的基模板?利用 Jinja2 的模板继承机制来扩展这个基模板区块名说明位置 / 用法举例doc整个 HTML 文档最外层可以覆盖整张网页<html>标签的属性比如lang="en"或html<html>标签中的内容<head>和<body>的全部基模板内部用,不常直接改head。

2026-02-12 23:48:46 599

原创 celery demo 教程

什么是celery?

2026-02-01 02:03:31 567

原创 celery入门教程 概念

不想阻塞用户请求的操作(发送邮件、导出报表、推送通知)都可以用 Celery任务可以分不同队列,例如:high_priority → 邮件low_priority → 日志分析Worker 可以订阅一个或多个队列,自动按队列顺序去取任务name。

2026-01-29 00:32:09 959

原创 ER图 教程

实体关系图也被称为 ERD、ER 图、实体联系模型、实体联系模式图或 ER 模型,是一种用于数据库设计的结构图。ER图是一种描述实体(Entity)及其之间关系(Relationship)的图形表示方法。它由美籍华裔计算机科学家陈品山在1976年提出,用于帮助设计和构建数据库模型。ER图通过实体(Entity)、属性(Attribute)和关系(Relationship)三个基本元素,直观地展示了数据库的结构我们先来看一下ER图是什么样子的。

2026-01-27 00:42:37 793

原创 windows 安装 docker

安装DockerDesktop。

2026-01-26 01:28:05 981

原创 Redis入门教程

Redis = 一台“专门存临时数据的服务器程序” 不是代码 不是库 不是 Python 自带的东西 而是: 一个在服务器上运行的软件。Redis = 一个一直运行的服务 用内存存数据 非常快 常用于缓存 / 临时数据。

2026-01-25 15:43:50 653

原创 flask 入门 token, headers,cookied讲解

127.0.0.1 和 localhost 只能在“本机”访问;使用 0.0.0.0 监听后,别的电脑是通过“你这台机器的真实 IP”访问的,而不是通过 0.0.0.0“客户端上传的文件列表”,每个文件都是一个对象,可以直接读取内容或者保存到服务器”。字节流 就是 返回字节(bytes 类型),而不是普通字符串(str)

2026-01-22 00:14:28 618

原创 任何“正在被遍历的容器”,都不应该在遍历过程中被结构性修改

简单理解就是每次取lst[i],i索引每次+1,但lst长度动态变化,lst始终是最新的列表对象。, lst每次都是最新的,对lst的修改,下次循环会生效,lst 始终是最新的列表对象。如果迭代器内部指针 >= 当前列表长度 → StopIteration → 循环结束。d.items() 返回的是字典中元素的实时视图(view),d变了也会变。访问的是最新的 lst,所以你看到的 lst 总是最新状态。迭代器返回元素时,是根据 当前指针位置 取元素。→ 所以看到的是最新列表内容。

2026-01-20 23:46:04 277

原创 f12网络教程 客户端 服务端 服务器前端 后端

2026-01-15 00:03:23 907

原创 javascript

JavaScript 主要有两种地方能运行:浏览器里 和 Node.js 里。

2026-01-11 21:30:35 156

原创 vue3 demo教程(Vue Devtools)

-- 用户操作 --><button @click="loadMessage">点我加载一句话</button>/*绑定到页面{{ message }} 就是把储藏室里的 message 放到网页上显示。当你更新 message,网页上显示的内容会自动跟着变化*/-- 页面展示 -->

2026-01-11 21:20:01 962

原创 volta教程 下载安装使用

再用 MSI 安装 → 这时 Volta 会自动用 D 盘路径下载 .msi 文件后直接双击安装。

2026-01-10 00:29:30 826

原创 rust安装

RUSTUP_HOME 和 CARGO_HOME👉 只是用来告诉 Rust:“你的东西存到哪”需要在用户环境变量新增键值对【配置完,需要重新打开终端】,如。

2026-01-09 01:19:12 616

原创 yaml 入门教程

:基本“原样”,不解析 \n、\t 这些转义序列(它们就当普通字符)。例:‘内容\n字符串’ 里面的 \n 就是两个字符:反斜杠和 n。”:会解析转义序列。特殊字符会输出为其本身想表达的含义。例:“内容\n字符串” 里的 \n 会变成真正的换行。看到 - → 这是“列表”的一个元素。看到 : → 这是“字典”的一项。

2026-01-02 00:09:16 310

原创 html入门教程

超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。该语言编写的HTML 文件运行在浏览器上,由浏览器来解析。

2025-12-28 00:36:02 197

原创 chrome 扩展(插件)开发入门教程

chrome插件的目录规范。

2025-12-27 00:05:08 1207

原创 Python heapq (堆/优先队列)

堆是一棵完全二叉树,树中每个结点的值都不小于(或不大于)其左右孩子的值。如果父亲结点是大于等于左右孩子就是大顶堆,小于等于左右孩子就是小顶堆。所以大家经常说的大顶堆(堆头是最大元素),小顶堆(堆头是最小元素)注意时heap不是heapq,heap是你自己起的名字,是你自己起的列表。

2025-12-21 17:10:43 391

原创 面向对象高级编程

IntEnum/StrEnum 让你“既是枚举,又像 int/str 一样用”。本体永远是枚举对象,值永远在 .value 里,只是 IntEnum/StrEnum 让这个对象“长得特别像原始值”

2025-12-14 00:50:44 801

原创 git,vscode,pycharm

Git 仓库” = 有 .git 的那棵目录树;.git 所在的那一层目录,就是这个仓库的根目录。1、变更列表视图时,暂存和没暂存的都在changes里,此时点击提交,pycharm会把没暂存的先暂存在提交2、暂存区域视图,点提交只会提交已经暂存 的在哪个分支下运行创建分支的命令,就是基于哪个分支拉一个分支出来。

2025-12-13 21:09:13 968

原创 screen教程

同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。会话共享:Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。多窗口:在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。你可以在这个房间里跑程序,你人走了(ssh 断了 / Xshell 关了 / 电脑关机),房间还在,程序继续跑。注意:uname -a 看的是“内核”,不是发行版。

2025-12-09 00:51:33 828

原创 logging 模块,stdin,stdout,stderr

函数回家找“自己文件里的全局变量”,不会跨文件去你调用它的地方要东西。APP_LOGGER_NAME = "ai_build" # 你项目的总 logger 名字,随便起一个"""配置业务日志记录器,只打印自己项目相关的日志。"""logger.propagate = False # 关键:不要往 root 传了# 避免重复添加处理器return# 控制台处理器# 文件处理器(如果指定了文件)log_file,"""业务代码里用这个拿 logger,

2025-12-03 23:50:50 884

原创 目录rwx权限,文件rwx权限

这里的文件就是指的目录项。

2025-11-08 16:51:01 327

原创 go安装下载 vscode go语言开发环境的搭建

命令行能运行的go的命令,是因为设置了path环境变量,实际就是调用了go.exe。可以根据需要更改位置。可以点开环境变量查看,双击框起来的可以看到已经有了。go run命令可以直接运行hello.go,类似于执行一个脚本文件的形式。这个命令可以终端运行,也可以命令行窗口运行,进到相应目录即可。第一个项目,比如src/go_code/project01。在 GOPATH 目录下新建src/go_code目录。在菜单的搜索框中,输入cmd,然后按 Enter键。以后所有的go项目都在这个路径下。

2025-11-08 14:49:58 743

原创 获取对象信息,dir,__len__,repr,__enter__,__exit__,__getattr__,setattr,hasattr

return f"属性class MyObj : def __init__(self) : self . x = 10 def __getattr__(self , name) : return f"属性 {name } 自动生成" def __getattribute__(self , name) : print(f"访问属性 {访问属性 b属性b自动生成"""自动生成"print(f"访问属性。

2025-10-19 19:21:46 653

原创 生成器generator,迭代器Iterator

可迭代对象(Iterable)定义:任何可以直接用于 for 循环的对象,都叫 Iterable。“任何实现了 的对象都是可迭代对象(Iterable)”,也能直接用于 for 循环。注意: 必须返回一个迭代器对象(也即这个对象实现了实现了for 循环只要求对象是可迭代的(Iterable),也就是 实现了 方法。但是,必须返回一个迭代器对象(既然是迭代器对象那就实现了)``pythonclass Counter:def init(self, n):self.n = nself.cur

2025-10-19 00:36:44 813

原创 python 直接赋值 浅拷贝 深拷贝

如果里面还有可变对象,指向的是同一个#深拷贝

2025-10-16 23:36:04 210

原创 python命名约定 _私有变量 __保护变量 公共变量

单下划线 _ 前缀的变量默认不会被 import * 导入,是 Python 的约定俗成(提示外部用户这是内部实现)类中定义 __func → Python 会在内部改名为 _ClassName__func。类中定义 __var → Python 会在内部改名为 _ClassName__var。它靠 命名约定(naming convention) 来区分。外部访问时必须用 _ClassName__func 才能访问。外部访问时必须用 _ClassName__var 才能访问。

2025-10-16 22:34:28 411

原创 python map reduce filter 函数返回值为函数 匿名函数 装饰器 偏函数

第5次调用,it = filter(_not_divisible(5),filter(_not_divisible(7),filter(_not_divisible(3), _odd_iter())))第四次调用,it = filter(_not_divisible(5),filter(_not_divisible(3), _odd_iter()))第三次调用,it = filter(_not_divisible(3), _odd_iter())调用next(it),返回5,运行到yield 5语句停下。

2025-10-13 22:52:38 1828 1

原创 进度条 track urllib.request,urlopen,rich.process,tqdm

在 rich.progress 里,每个任务都有一个 当前完成量(completed)和 总量(total)description 是显示在前面的文字(支持颜色标签 [red]、[green] 等)Progress() 创建一个进度条管理器,管理所有任务。接受一个可迭代对象(比如 range(20))。2)手动创建任务并更新(适合非迭代驱动的工作)4)嵌套进度条(外层任务 + 内层任务)“把任何可迭代对象包起来就有进度条”自动在控制台显示一个进度条。每迭代一次,进度条前进一格。3)下载(按字节显示进度)

2025-10-04 00:16:07 622

原创 哈希和加密

加密和解密使用同一个密钥使用一对密钥:公钥(public key)+ 私钥(private key)公钥加密,私钥解密(典型场景)或者 私钥签名,公钥验证(数字签名场景)Fernet.generate_key() 会生成一个随机的密钥(Base64 编码的字节串)。Fernet(key) 用这个密钥创建一个加密器对象 f。这个密钥非常重要,加密和解密都要用它(对称加密的特点)。f.encrypt() 使用密钥对 srcBytes 进行加密。返回的是加密后的 字节串,里面包含:加密后的数据时间戳(

2025-10-02 22:51:40 385

原创 日期和时间 utc

夏令时 = 夏天把钟表拨快 1 小时,让人更早起、更多利用白天的太阳光,减少开灯用电。

2025-10-02 17:24:31 322

原创 socket编程 netstat 大小端 rpc(grpc) 协程 io yield

接受来自客户端的消息。缓冲区指:操作系统维护的 TCP 接收缓冲区yield把值导出给外部,不会赋值给左侧,调用send给上一次的yield的表达式赋值,即给上一次yield的左侧赋值,如果不调用send直接next,上一次yield左边会是空值,相当于发送空值send(none)

2025-09-27 21:02:48 888 3

原创 python 多线程 多进程

一个 Python 程序的整个进程,只有在 所有非守护线程(non-daemon thread)都结束后,才会真正退出。所以即使主线程已经执行完了 print(‘主线程结束’),进程仍然会等子线程执行完(即 print(‘子线程 结束’) 打印出来)之后才退出【参加daemon线程章节】。10个线程,一开始取的初始值大概率就是0,所以即使线程2赋值为1了,但是线程3取到的不是1,而是0,再写会是1.即我们写的代码去运行的时候,实在python解释器的主线程中去运行的。让它执行python解释器本身的代码。

2025-09-20 17:32:59 445

原创 python装饰器

这个sayLocal 函数调用的返回值 就是 这个内部函数 wrapper。此时在执行getXXXTime就是装饰后的了。就已经执行了装饰后的代码。wrapper() 里面的 func(),就会调用之前传进来的参数。注意python执行完 语法糖,就相当于,自己写了一条语句,不理解可以debug上述代码,看看最后一行跳转到了哪里。函数自身有函数调用的时候肯定要传参数。

2025-09-07 16:17:55 215

原创 uv教程 虚拟环境

永久生效就设置到环境变量里,或者使用每个命令的时候加-- cache-dir。具体见uv文档的命令的章节如果使用uv sync被拦截,则需要先下载对应的python版本。uv会根据i项目里的python版本,自动查找合适的python版本,去哪找的会显示2.1 下载对应的python版本首先输入 winget search python (Windows 包管理器 (winget)搜索和 Python 相关的软件包)查找可以得到的python版本。

2025-09-06 21:38:48 2585

原创 python 正则表达式

正则表达式,是一种语法,用来描述你想搜索的字符串的特征。

2025-07-21 23:43:46 381

原创 python 虚拟环境 Anaconda Miniconda

Anaconda Distribution 和 Miniconda 安装程序都包含 conda 包和环境管理器,但您计划如何使用该软件将决定您要选择哪个安装程序。conda 是 Anaconda 发行版中的包管理器,用于安装、更新、卸载软件包,以及创建和管理不同的 Python 环境。不需要主动去下python=3.10 conda就给下了。Anaconda prompt来。使用 Miniconda。

2025-07-13 23:32:54 912

原创 python excel处理

xlrd只能读取内容。可以看出,数字以小数的形式返回了。常规和数字格式下,保留小数点后一位。设置完格式之后,双击单元格才能生效。如果单元格内没有内容,设置完格式就生效了,此时往单元格内写内容就是设置的格式了。sheet.row_values(rowx=0) 还可以指定开始列和结束列的位置。sheet.col_values(colx=0) 可以指定开始行结束行的位置。

2025-07-12 23:46:50 570

原创 c++ 头文件

声明全局变量虽然合法并常见,但确实存在一些“坏味道”,在现代 C++ 开发中不推荐广泛使用它。当然一般也不会把变量定义放到头问件,那为什么还需要防止重复包含?之后不再初始化,而是保留之前的值。为什么要防止头问件重复包含?头文件的主要作用与说明。进入函数时执行初始化。

2025-06-08 21:56:20 854

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除