分类: 未分类

27 篇文章

数据依赖与数据库范式——以术力口数据库为例
数据依赖、数据库范式这些东西挺绕的。这些概念需要慢慢说清。本文我会以术力口数据库为例,尽量清晰地介绍一下这些内容。 背景资料:术力口数据库 术力口数据库是统计 bilibili 的虚拟歌手外语歌曲的数据库,其数据包括但不限于: 歌曲的(不止一个)作者、歌手、引擎 歌曲在B站的(不止一个)视频 视频的标题、BV号 歌曲每天记录的播放、收藏、硬币、点赞…
pandas 避免 int 列数据缺失变成 float NaN 的方法
pandas 的数据类型基于 numpy,但是 numpy 的数据类型在处理缺失值的时候有个问题,会导致不太适合用在 pandas 的使用场景。 问题呈现 有一个列,它原来的数据类型是 int32。 [1, 2, 3] 但是,如果你在这个数列中加入空数据,比如 None,就会导致它的数据类型变成 float32。 [1.0, 2.0…
Element Plus 走马灯自动高度配置的笨办法
Element Plus 的走马灯(carousel)元素是提供了 height="auto" 这个方法,让走马灯的高度可以根据子内容的高度自动设置。但是经过研究之后,我发现它只能够识别写死在 <el-carousel-item> 元素属性上的高度。不太好用。 而且假如说走马灯滚动的时候,它自身的高度还会变化,这就导致网页不稳定了。这是一种不…
Android Studio 网络原理和配置
这几天尝试了一下 Android 开发。Android 开发的网络配置稍微复杂一些,因为需要分别配置很多的网络。尤其是对于没有开发经验的人来说,根本不知道网络到底是怎么一回事。下面我来从头开始讲解一下其中的原理,以及推荐方案。 Android Studio 网络 Android Studio 是一个 IDE,它包含编辑器、调试器等工具,需要连接网络…
Python requirements.txt 的更好写法
有时候用默认的 pip freeze > requirements.txt 不够好。可能是因为你的环境里面出于种种原因安装了此项目不需要的包。总之,我们需要更好的方法。 1️⃣ 列出顶级依赖 这一步可以使用 pipreqs: pip install pipreqs cd /path/to/your/project pipreqs . --force…
MediaWiki 中 JavaScript 脚本的加载时机和顺序
在之前的文章里,我介绍了 MediaWiki 中导入 CSS 和 JavaScript 脚本的两种主要方式,分别是 Widget 和 Gadget。 https://blog.snowdream39.top/?p=151 网页中 JavaScript 的加载有一个很重要的问题,就是加载的时机。假如一段控制 DOM 的代码在 DOM 加载完成之前执行…
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…