前言最近编写了一个Flask应用,其API接口路由数量较多,为了方便管理和分组接口代码,使用了Flask的蓝图功能,在此处做一个记录。 蓝图介绍Flask 的蓝图(Blueprints)允许你将 Flask 应用分解成多个模块。这样可以更好地组织应用逻辑,使得应用更具可维护性和可扩展性。 每个蓝图可以有自己的路由、视图函数、模板和静态文件,这样可以将相关的功能分组。 通过使用蓝图,你可以将 Flask 应用拆分成多个模块,每个模块处理相关的功能,使得代码更加清晰和易于管理。 创建蓝图创建蓝图涉及到以下几个步骤: 定义蓝图:在一个独立的模块(文件)中定义蓝图。 注册蓝图:在主应用中注册蓝图,使其生效。 项目结构因为我的项目需求为纯API请求,不需要模板文件,因此选择直接将蓝图放在routes文件夹下 1234567891011app/│├─ app.py├─ config.py│└─ routes/ ├─ index.py ├─ token.py ├─ user.py └─ __init__.py 定义蓝图以index.py中的内容为例 Blueprint( ...
前言最近想要申请软著,发现需要提交60页的源代码,还有格式上的要求,所以写了个脚本来自动将代码整合到word文档中,自动去除了注释和空行,并会统计总行数。 此脚本需要安装Python环境,并安装python-docx模块。此脚本会整合所有代码文件,并生成一个word文档,但不能自动删减页数到60页,如果代码过多,需要手动删减。 脚本使用前需要用pip install python-docx安装python-docx模块。 将文件放入代码根目录,使用python .\word.py运行脚本,会在当前目录生成一个code.docx文件,打开后就可以看到整合后的代码。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899import osimport re# pi ...
写在前面在完成Python项目时,我们一般需要编写一个requirements.txt文件,该文件包含了项目所依赖的库的名称和版本号,方便后续部署项目。但是如果项目使用了较多的第三方库,手动编写该文件会非常麻烦,这时我们可以借助一些工具来自动生成该文件。本文介绍了几种常用的自动生成依赖文件的方法。 1. pip freezePython的 pip 包管理工具提供了 freeze 命令,可以将当前环境中安装的包信息写入 requirements.txt 文件。 该命令会将所有安装的包都写入requirements.txt文件,包括系统自带的包和第三方包的依赖包。如果项目中有有第三方包依赖了很多其他的第三方包,那么这些依赖包都会列出来,不利于包管理。 1pip freeze > requirements.txt 或者 1python -m pip freeze > requirements.txt 推荐使用第二种方式,使用python调用而不是直接调用pip命令,因为第一种方式可能会出现版本冲突或者其他问题。 生成完后,可能还需要修改和删除里面不必要的安装包。因为很多安装 ...
本文修改主题为AnZhiYu主题,若使用其他主题,请自行确认修改位置。 原文出处 https://blog.bsgun.cn/posts/68c5cdb9 效果预览 查看图片 修改步骤本文与原文不同,将其集成为了pug模板,以便在配置文件中控制侧边栏显示以及需要倒计时的日期。 1.新建文件新建[Blogroot]\themes\butterfly\layout\includes\widget\card_countdown.pug 123456789if theme.aside.card_countdown.enable .card-widget.card-countdown .item-content .cd-count-left#countLeft span.cd-text 距离 span.cd-name#eventName!= theme.aside.card_countdown.event_name ...
宝塔面板www目录,从系统盘切换到数据盘的操作方法如下: 一:如果是纯净系统还没安装宝塔面板 /mnt 更换成你的另一块磁盘分区名称 第一步:进入mnt目录(mnt是数据盘名称,有很多是home,你的数据盘挂载位置是什么就用什么) 1cd /mnt 第二步:创建宝塔面板安装需要用的www目录 1mkdir www 第三步:建立/mnt/www的软连接到/www(也就是给系统根目录建立一个www的“快捷方式”指向/mnt/www) 1ln -s /mnt/www /www 第四步:正常安装宝塔面板即可 二:如果已经安装了宝塔面板和WEB环境 /mnt 更换成你的另一块磁盘分区名称 第一步:移动系统根目录下的www到mnt 1mv /www /mnt/www 第二步:建立/data/www的软连接到/www 1ln -s /mnt/www /www 第三步:重启服务器 1reboot 第四步:重启宝塔面板服务 1service bt restart 第五步:打开宝塔面板,C ...
写在前面本文介绍了如何在文章中添加条件勾选表单,并解决PJAX刷新后JS失效的问题。 原文出处 https://blog.qjqq.cn/posts/51e.html 添加方式在文章的头部添加以下代码: 隐藏评论表单12345678<style>.tk-comments > .tk-submit { opacity: 0; height: 0; transition: opacity 0.5s ease, height 0.5s ease; overflow: hidden;}</style> 监听复选框勾选状态123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051<script>document.addEventListener("DOMContentLoaded", function () { const checkboxes ...
前言最近编写了一个Flask应用,其API接口需要访问MySQL数据库读取数据,为了防止高并发情况下MySQL数据库的压力,使用了Redis作为缓存来提高API接口的响应速度。本文将介绍Redis的基本概念和在Python中的使用方法。 Redis简介Redis(Remote Dictionary Server)是一个开源的高性能键值对存储数据库,最初由 Salvatore Sanfilippo 开发,它在内存中存储数据,并提供了持久化功能,可以将数据保存到磁盘中,是一种NoSQL(not-only sql,非关系型数据库)的数据库。 它的数据结构十分丰富,基础数据类型包括:string(字符串)、list(列表,双向链表)、hash(散列,键值对集合)、set(集合,不重复)和 sorted set(有序集合),这使得它不仅仅是一个简单的键值存储,还可以用于存储和处理复杂的数据。 Redis 特点/优势Redis 具备许多特点和优势,所以在大规模应用和高并发场景中得到广泛应用。 丰富的数据结构:Redis 支持多种数据结构,包括字符串(String)、哈希(Hash)、列 ...
写在前面在修改网站字体时,用到了第三方字体库,但是该字体库有20+MB大小,加载速度很慢。网速很慢的话,极其影响用户体验,还可能致使字体无法生效。换字体是不可能的,特此记录一下如何压缩字体,来加快访问速度。 据测试,字体从20.7MB压缩至1.65MB,压缩率为92.03%。 字体格式科普常见的字体格式有以下几种,这里只作简单介绍。 TTF TTF(TrueTypeFont)是Apple 公司和Microsoft公司共同推出的字体文件格式,随着 windows 的流行,已经变成最常用的一种字体文件表示方式。 这种格式的字体文件体积比较大,以思源宋体为例,字体文件可以达到 24MB+,通常只用作安装到计算机中的字体,或者在网页中设备不支持 WOFF2 字体情况的兜底处理。 OTF OpenType,是一种可缩放字体(scalable font)电脑字体类型,采用PostScript格式,是微软公司与Adobe公司联合开发,用来替代TrueType字体的新字体。这类字体的文件扩展名有.otf、.ttf、.ttc,类型代码是OTTO,现行标准为OpenType 1.9。 可以理解为和 ...
前言由于国内不少MC玩家没有正版账号,如果开正版服务器,离线玩家就无法进入,开离线服务器又需要增加登录插件,玩家每次进入服务器都需要登录,比较繁琐。离线验证可以通过使用皮肤站外置登录方式解决,但这样正版玩家也需要去皮肤站注册才能完成登录,因此考虑能否实现外置+正版混合登录,正版玩家能直接进入服务器,而盗版玩家在皮肤站注册后能在启动器层完成登录直接进服,省去每次进服后的登陆过程。 准备工作 一个 MC 服务端 一个皮肤站 一个启动器(支持第三方登录) YggdrasilOfficialProxy/YggdrasilGateway 皮肤站搭建如果你需要自己的皮肤站,可以选择Blessing Skin,安装指南见Blessing Skin 用户手册。文档中给出了详细的安装方法,本文不再赘述。 如果遇到插件市场无法打开的问题,可以参考Issues解决 或者你也可以直接使用现成的皮肤站,比如LittleSkin。 登录代理下载YggdrasilOfficialProxy和authlib-injector 首先打开你的服务器配置文件server.properties,找到onlin ...
前言由于我的博客部署在Vercel等Serverless平台上,此类平台对于国内来说访问速度较慢,有的地区甚至会出现无法访问的情况,因此我打算使用CDN来加速网站,奖网站分发到国内节点,同时还能通过缓存功能减少流量消耗并加快访问速度。 注意:大部分国内 CDN 使用需要域名进行备案。 什么是CDNCDN英文全称Content Delivery Network,中文翻译即为内容分发网络。它是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。简而言之就是,厂商在全国各地都有很多很多的服务器,每一个服务器我们称之为节点,很多的节点组成了CDN。 CDN的原理CDN的工作原理就是将源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验。 在用户与源站之间加了一层CDN,用户先访问 CDN的节点,CDN节点再去源站拿取内容,当用户第二次访问的时候就会直接返回节点上缓存的内容,由于节点离用户近,所以用户拿到资源的速度就会缩短,访问也就变快了。 ...