-
cloudfare+gmail 配置 smtp 邮箱
这里介绍有一个域名后,不需要服务器,就可以实现 cloudfare+ gmail 的 邮箱收发。为什么还需要 gmail 的 smtp 功能,因为 cloudfare 默认只是对 email 进行转发,就是只能收邮件而不能发送邮件,故使用 gmail 的功能来进行代理 发送。标准的“发信 Gmail + 收信 Cloudflare Email Routing”配置,非常适合个人域名使用【因为可以有 200 个名称】!!!! 收信:Cloudflare MX 接收 + 转发 发信:Gma...…
-
rtmp 协议解析 1
介绍📖 什么是 RTMP?RTMP协议(Real-Time Messaging Protocol,实时消息传输协议)是由Adobe公司(最初由Macromedia开发)设计的一种用于实时传输音频、视频和数据流的网络协议,主要用于直播和流媒体传输,最初是为了让 Flash Player 和 Flash Media Server 之间进行音视频和数据的实时传输。现在虽然 Flash 被淘汰了,但 RTMP 这个协议因为其简单、低延迟、稳定的特点,依然在直播领域广泛应用,比如 OBS 推流、斗鱼...…
-
Git Flow 分支模型
经典分支模型(Git Flow)由 Vincent Driessen 提出的 Git Flow 模型,是管理 main(或 master)和 dev 分支的经典方案: main 用于生产发布,保持稳定; dev 用于日常开发,合并功能分支(feature/*); 功能开发在 feature 分支进行,完成后合并回 dev; 预发布分支(release/*)用于测试,测试完成合并到 main 和 dev; 紧急修复分支(hotfix/*)从 main 拉出,修复后合并回 m...…
-
FastAPI-MCP
介绍开源地址: https://github.com/tadata-org/fastapi_mcpFastAPI-MCP 是一个开源项目,旨在简化 FastAPI 应用与现代 AI 代理(如基于大语言模型的系统)之间的集成。它通过自动将 FastAPI 的所有 API 端点暴露为符合 Model Context Protocol(MCP)标准的工具,使得 AI 代理能够直接调用和理解这些接口,整个过程无需额外配置,极大地降低了开发者的集成难度。主要功能 零配置自动化:无需手动配置,Fas...…
-
Autogen参数说明
UserProxyAgent用户user_proxy = UserProxyAgent配置说明:# 构造参数def __init__( self, name: str, is_termination_msg: Optional[Callable[[Dict], bool]] = None, max_consecutive_auto_reply: Optional[int] = None, human_input_mode: Literal["ALWAYS", ...…
-
Macbook配置开发环境
博主是一名Python后端开发,有时候环境太多 需要配置太多,故做此文章环境Macbook ,请注意自己的是ARM 还是x86 结构Vscode/Cursor配置Python debug配置Debuglaunch.json{ "version": "0.2.0", "configurations": [ { "name": "Python: FastAPI", "type": "debugpy", ...…
-
点击劫持
介绍🔐 什么是点击劫持(Clickjacking)?是一种攻击方式,攻击者在自己的网页中用 <iframe> 偷偷嵌入你的网站,然后诱导用户点击,从而在你的网站上执行操作。举个例子:• 你的网站是银行后台:https://bank.com/transfer• 攻击者在自己的页面里偷偷这样写:<iframe src="https://bank.com/transfer" style="opacity: 0; position: absolute; z-index: 999;...…
-
跨站请求
介绍跨站请求(Cross-Site Request)通常是指浏览器在访问一个网站时,向另一个域名的网站发送请求的行为。这个概念在 Web 安全中非常重要,尤其是在涉及到“跨站请求伪造(CSRF)”和“跨域资源共享(CORS)”时。✅ 原理: 用户登录了网站 A(比如网银),获得了身份 Cookie; 恶意网站 B 引导用户访问一个看不见的表单或图片链接; 浏览器默认会自动携带 Cookie 发起请求; 网站 A 接收到请求,并以为是用户主...…
-
数据库预热
介绍Database Warm-up🧠 一句话理解数据库是在应用启动阶段,提前建立数据库连接 或 执行轻量 SQL 操作,从而 加快首个请求的响应速度 的一种优化手段🎯 为什么需要数据库预热?当 FastAPI 或其他 Web 服务刚启动时:• 你虽然配置了数据库连接池(比如 SQLAlchemy、asyncpg);• 但其实它 并不会立即创建数据库连接;• 第一个真实的请求进来时,才会懒加载连接;• 这个首次 handshake 连接建立 + TLS 认证等操作,可能耗时 几百毫秒甚至几...…
-
Python装饰器使用
介绍🧠 什么是 Python 装饰器?装饰器(Decorator) 是一个函数,它可以在不修改原函数代码的前提下,增强或修改函数的行为。本质上,装饰器就是“函数的函数”。它常用于:• 代码复用(比如日志、性能统计、权限校验)• AOP 编程思想(面向切面编程)💡 常见应用场景 日志记录 性能测试 权限验证 缓存(如 LRU 缓存) 重试机制 Flask、Django 等框架中的路由注册、权限控制等 🧰 Pyt...…
-
CORS与OPTIONS请求
CORS🔥 什么是 CORS(跨域资源共享)? 跨域不是后端的问题,是浏览器出于安全策略主动拦截✅ 关键点:Access-Control-Allow-Origin 是谁给谁的?• 是后端响应头里给前端浏览器的• 告诉浏览器:✅ “我允许你这个来源访问我”• 如果没有这个头,或者值不对 —— 浏览器直接拦截,前端 JS 连响应内容都拿不到!🧠 浏览器执行流程: 🧾 浏览器发现请求是跨域的(不同域、端口、协议) 🔍 发起一个预检请求(OPTIONS 方法,只有复杂请求...…
-
Catch-All 路由
介绍✅ 什么是 Catch-All 路由? Catch-All 路由 指的是:一个能匹配“任意路径”的通配型路由。它一般会使用 路径参数 path 类型,比如:@app.get("/{full_path:path}")async def fallback_handler(full_path: str): return {"msg": f"You visited: {full_path}"}这个 / 开头的 /{full_path:path},意思是:• 匹配任何以 / 开头的请求;...…
-
5G-A技术
最近的iOS 18.4 推送了 新功能,最引人注目的便是这个5G-A的这个功能,那什么是5G-A呢 ?目前北京 四环内 还是有能显示出5G-A标志的。5G-A🌐 一句话概括: 5G-A = 更快的速度 + 更低的延迟 + 更强的AI能力 + 更智能的网络✅ 5GA 是什么?5GA(5G Advanced)是 3GPP(全球通信标准组织)在Release 18中定义的5G演进技术标准,相较于当前的5G网络,5GA带来了更强的性能与智能化能力,主要体现在:📶 性能增强:• 速度更快:峰值下载...…
-
APScheduler解析
异步IO 定时(协程)import asyncioimport loggingfrom apscheduler.schedulers.asyncio import AsyncIOSchedulerfrom apscheduler.triggers.cron import CronTriggerlogging.basicConfig(level=logging.INFO)logger = logging.getLogger(__name__)class ScheduleService: ...…
-
定时任务(python)
介绍🧩 什么是“定时任务”?定时任务,就是按照设定的时间间隔或时间点自动执行某些操作。比如:• 每天早上8点发通知• 每隔10秒采集一次数据• 每小时清理一次缓存相关使用✅ 最简单的方式:while True + time.sleep()import timedef job(): print("执行任务")while True: job() time.sleep(10) # 每10秒执行一次✅ 优点:• 写法简单,不需要任何依赖• 控制力强❌ 缺点:• 会阻塞当前线程•...…
-
单例模式
介绍✅ 一、什么是单例模式? 一个类在整个程序运行过程中,只能被创建一次实例,且这个实例是全局共享的。✅ 二、为什么要用单例模式?适用于那些:• 系统中只应该有一个实例存在的对象• 该对象需要被多个地方共享使用(比如:配置类、数据库连接池、线程池、缓存、日志器)相关模式实现⭐ 方式一:最经典的懒汉式(线程不安全)只有在第一次调用时才创建实例,之前不初始化。class Singleton: _instance = None def __new__(cls): if...…
-
接口等幂处理
介绍✅ 什么是等幂(Idempotency)? 等幂 无论这个操作被执行多少次,结果都是一样的,不会因为多次执行而产生副作用。通俗一点说:“点一次和点一百次,效果是一样的。”✅ 在接口中,什么是等幂操作?在 Web / API 开发中,一个 等幂操作的接口,意味着客户端(用户、服务、浏览器)多次请求同一个接口,结果不变,也不会影响系统的状态或数据重复修改。 操作 等幂性 原因 GET /user/123 ...…
-
主键id设计
主键自增id🌱 1. 自增 ID(Auto Increment ID)✅ 特点:• 数据库自带(MySQL, PostgreSQL 都支持)• 简单易用,可读性强• 一般作为主键自带聚簇索引(主键就是物理存储顺序)❌ 缺点:• 单点瓶颈(高并发环境中,写入需要锁定 ID 生成器)• 不适合分布式(各节点之间 ID 容易冲突)• 不适合高频写入(写热点集中,容易成为瓶颈)• 易被推测业务量(连续的 ID 暴露增长速度)👉 适合:单库/单实例系统,写入压力不大🌟 什么是 聚簇索引(Cluste...…
-
.git文件夹解析
文件夹介绍🍎 在 macOS 上如何查看 .git 文件夹?✅ 方法一:终端查看(最推荐)cd /你的项目路径/ls -a-a 参数表示“显示所有文件(包括隐藏的)”,你就能看到:.git.gitignoreREADME.md...✅ 方法二:在 Finder 中显示隐藏文件⌘ Command + Shift + .(句号)✅ 方法三:用 VS Code 直接看1. 打开设置:⌘ + ,2. 搜索:files.exclude3. 把其中的 .git 相关条目注释掉或者取消选中(VS Cod...…
-
.gitattributes与git-lfs
.gitattributes.gitattributes 是 Git 项目的一个配置文件,用来定义文件在 Git 中的行为。它可以控制 Git 如何处理特定类型的文件,比如合并策略、换行符、文本编码、diff 显示方式、LFS(Git Large File Storage)等内容。🌟 用通俗点的话来说:.gitattributes 就像是告诉 Git:“嘿!对于这些文件,应该用这种方式来处理。”📘 常见用法示例1. 控制换行符(跨平台兼容)* text=auto自动处理文本文件的换行符(W...…