MediaWiki 的 Widget 和 Gadget 有什么区别
最近在建设新站。需要自己写很多的 Widget 和 Gadget,所以现在总结一下这两者的区别。 其实两者本质上都非常相似,就是向页面内插入一段内容。只是插入的方式不一样。 首先我们要知道,MediaWiki 的条目基本内容是用户写的 wiki 语言,不是前端开发常用的 HTML/CSS/JavaScript。通常写条目,最多只能写一些受限的 HT…
迁移 mediawiki 需要做哪些事
最近,我终于在创建新的 wiki 了!这是一个专门记录非中文虚拟歌手相关内容的 wiki,由我们这些一直记录相关内容的同好们共同维护。现在有了这个 wiki,我打算在这里写很多的小组件,还有很多的自动化功能,大大减轻编辑者的负担。 在创建这个站点的过程中,因为涉及多次迁移服务器,所以我在这里记录一下迁移服务器所需要做的事情。 配置服务器 LAMP …
最小可用 SQLAlchemy 使用指南(异步版)
因为 psycopg 对异步的支持不是很好,配置容易出问题(不要试图反驳我),所以推荐改用 asyncpg 。 1. 安装依赖 pip install sqlalchemy[asyncio] asyncpg 2. 建立数据库连接和 Session from sqlalchemy.ext.asyncio import AsyncSession…
Alembic 管理数据库迁移
🔧 正确的 Alembic 使用步骤 这里是你 应该怎么做迁移 的完整流程(用一次记住,不会再糊涂): 🥇 第一次迁移初始化(只做一次) 初始化 Alembic: alembic init alembic 生成 alembic.ini 和 alembic/ 文件夹。 修改 alembic.ini找到: sqlalchemy.url = sqlite…
FastAPI 部署在非根目录的注意点
解决方案:设置 root_path FastAPI 提供了 root_path 参数,告诉它你的应用实际挂载在子目录,这样它生成的文档路径和请求路径都会自动加上这个前缀。 具体做法 假设你的服务挂载在子目录 /api 下,启动 FastAPI 时: from fastapi import FastAPI app = FastAPI(root_pat…
使用 python 搭建服务器后端流程
都是 ChatGPT 写的,我就不掩饰了。 在开发环境和生产环境使用不同的配置文件 太好了!既然你用的是 Python,那我们就用 python-dotenv 配合环境变量管理来优雅地区分本地和生产配置 🐍✨ 🌟 一套完整可用的 Python 环境变量配置方案 ✅ 第一步:安装依赖 pip install python-dotenv ✅ 第二步:创…
🎶 AI 舞萌写谱系统的三阶段设计
三阶段是我提出的,然后以下内容由 ChatGPT 生成。 ✅ 第 1 阶段:音符提取(采音) 📌 目标:从音频中提取“值得被打击”的音符节点。 方法建议: 使用音频峰值检测 + 频谱分析(onset detection + chroma features)。 结合 CNN/RNN 模型识别鼓点、旋律、Bass、人声等元素。 使用像 madmom、[…
🚧 使用 UnoCSS 遇到的一些坑:dark 模式样式不生效的问题分析与解决
最近我在使用 UnoCSS 构建一个项目时,遇到了一些让人很头大的问题。尤其是在处理暗色模式(dark mode)时,一些样式总是无法生效,最终通过不断调试和查阅资料,才终于搞明白问题所在。 这篇文章总结一下我踩过的坑,希望能帮到遇到类似情况的你 👇 💡 背景介绍 我使用的是 UnoCSS 的 presetWind4,配置中选择了暗色模式跟随系统(…
在服务器上配置 Fief
Fief 是一个开源的用户管理系统,适合快速使用、不想自己开发用户系统的情况。 在服务器上利用 docker 部署,基本上只需要跟随官网的这篇文档。但是,其中还有一个小地方需要注意一下。 因为这篇文档本来写出来是给本地部署用的,所以有一处地方需要修改。 在 -e "FIEF_DOMAIN=localhost:8000" \ 当中,把 localho…
为什么利用框架开发前端就不需要用 class 了
我们以前原生开发Web前端,一般推荐写样式的时候使用内部样式表(class),而不是写内联样式。主要是因为: 内联样式每用一次就要写一次,而 class 只需要写一次 内联样式的优先级高,会把 class 的样式覆盖掉。有时候可能改了 class 的样式,却忘了有内联样式。 但是,用了框架之后,开发的方法发生了变化。组件变得可以重复使用。因此,只要…