自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 【Ruby】Mixins扩展方式之include,extend和prepend

首先,mixin是module模块,它用于在class之间共享提供可复用的的方法而不采用继承的方式。endend不同于继承,可以将这个module通过mixin方式(include, extend, prepend)进任何的class。

2025-11-07 11:53:19 508

原创 【最新】CentOS7换yum阿里镜像源(2025.9验证可行)

对于上述的文件,替换配置文件,可将原有的配置先做个备份。然后将文件覆盖原有文件后清理缓存即可生效。

2025-09-01 14:33:38 511 1

原创 RubyMine配置docker中的ruby编译器及添加docker调试功能

有两台docker容器,分别用于运行redmine应用(可以理解为ruby的编译运行环境)和MySQL数据库服务器, 项目源码位于windows本地环境下。通过上述操作即可在rubymine下开发项目并实时部署到容器中运行,最终项目打包只需要打包容器即可。

2025-08-22 09:00:29 209

原创 docker容器中数据库与应用分离时数据库的端口暴露与连接(仅开发测试环境!)

运行redmine项目的时候数据库一般跟应用分离,我在本地将应用和mysql server放在了两个container中,所以应用服务器中的数据库配置需要能够连接到数据库服务器,常规角度来说可以直接设置docker中容器网络互通。但是由于我需要在其他主机上通过navicat连接数据库,于是将mysql服务器运行直接将3306端口暴露出来,实际生产不建议这么做!其中mysql8-host为需要运行的容器名,mysql8-snapshot为镜像名。

2025-08-21 16:54:44 144

原创 ruby项目redmine迁移数据库时ArgumentError: Missing `secret_key_base` for ‘production‘ environment

接下来继续创建和迁移数据库就不会再报错了。这里会生成一串密钥,下述命令使用。

2025-08-20 17:02:31 200

原创 一文速通Ruby语法

【代码】一文速通Ruby语法。

2025-08-19 17:49:05 487

原创 从零开始部署经典开源项目管理系统最新版redmine6-Linux Debian12

前面为了在windows上好开发,想要在windows上配置开发环境,以源码方式在本地部署运行,但经过好几天各种版本切换及配置组件库等各种操作后,证明windows上搭建redmine6支持的运行环境没有那么简单,后续有时间再更一篇windows踩坑记。在Linux上安装我选择的方式是使用rvm进行安装,验证过还是很方便的,且后续可进行版本的切换,因为rvm本身就是ruby的版本管理工具(ruby version manager)。切换到项目目录下的config文件,拷贝数据库配置示例文件,更改实际配置。

2025-08-18 11:15:59 660

原创 Linux配置ntp服务更新最新时间Debian12

Linux环境下如果不配置更新最新时间,经常会遇到请求到达的情况下被拒,所以通常配置ntp来实时同步时间。

2025-08-15 15:56:12 473

原创 【MySQL】避免执行SQl文件后自动转化表名为小写字母

编辑MySQL配置文件(my.cnf或my.ini),找到lower_case_table_names,设置lower_case_table_names=0,这会保留表名的大小写。可以通过修改MySQL配置文件中的lower_case_table_names参数来解决。在云端的MySQL数据库中有一部分表名为大写,导出sql文件其中表名也是大写,但是本地新建一个数据库后执行sql文件后对应的表名全部变成了小写。:这个设置只能在数据库创建之前修改,如果数据库已经存在,可能需要重新创建数据库并导入数据。

2024-11-19 23:34:05 866 1

原创 【Django】解决软删除数据重新新增无法通过唯一性校验问题must be unique ... HINT: Add unique=True to this field or add a Unique

也尝试了在class Meta中加上constraints属性用于限制外键及唯一性也不奏效。Django框架中通常在model类中对于字段的属性可以设置unique=True以表示该字段为唯一的,不允许有重复的值。在插入或更新数据的时候检查相应字段是否已经在数据库中存在。而通常情况下对于数据库数据的删除是采用软删除的形式,即将类似于is_delete或者is_active这样的字段从0置1。在模型类中自定义管理器用于在初始化过程中就筛选相应软删除的字段。

2024-11-13 21:44:56 339

原创 【Vue3】基础语法案例

图片点击轮播<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>图片轮播</title></head><body> <div id="app"> <h3>{{ number }}</h3> <!-- 通过模板字符串取值

2024-11-11 22:03:07 960

原创 【JavaScript】网络请求之Promise fetch Axios及异步处理

Promise 表示承诺在未来的某个时刻可能会完成并返回结果,对于某些需要时间来处理结果的操作, 如用户登录、读取文件等, 可以使用 Promise 对象来执行异步操作Promise 对象有三种状态 pending(待处理)、fulfilled(已履行)、rejected(被驳回)。注:异步操作是指在程序执行过程中, 某个操作不会立即返回结果, 而是需要一段时间的等待。

2024-11-08 22:14:09 626

原创 【JavaScript】模块化开发

模块化开发是指将复杂的代码拆分为独立的模块,每个模块负责完成特定的功能,不同的模块之间可以通过使用export关键字将代码导出为模块,其他模块可以使用import关键字导入该模块。

2024-11-07 22:56:18 270

原创 【JavaScript】数组-集合-Map-对象-Class用法一览

私有属性及get set方法。

2024-11-05 21:23:35 322

原创 【Vue3】自定义组件及组件间的通信-案例程序及配图版

为了便于后续项目进行,可以将默认的东西去掉将项目变成一个空项目,去掉的东西如下:文件:src\style.css;删除代码:main.js中的 import ‘./style.css’</script><template>Hello!Gavin_915!</style>项目的前端页面无报错,如下所示:为了便于后续开发,安装如下插件:安装上述插件后对于vue文件的标签可进行联想管理。

2024-11-04 21:54:26 884

原创 【Vue3】一文全览基础语法-案例程序及配图版

文章目录Vue应用基本结构模块化开发ref和reactive绑定事件 v-on 简写@显示和隐藏 v-show条件渲染 v-if动态属性绑定 v-bind 简写:遍历数组或对象 v-for双向数据绑定 v-model渲染数据 v-text 和 v-html计算属性 computed侦听器 watch自动侦听器 watchEffect本文示例代码下载链接Vue3基本语法示例代码Vue.js是渐进式JavaScript框架,渐进式是指可以按需引入Vue.js的部分功能, 而不必全量引入整个框架。下面引入v

2024-11-03 08:41:19 1005

原创 【Java】WrapperClass包装类及对象引用相关总结

包装类是Java提供的一种类,用于将基本数据类型包装为对象。包装类提供了许多方法,可以方便地进行类型转换、比较、解析字符串等操作。虽然基本数据类型可以完成许多相同的操作,但使用包装类有一些显著的好处,尤其是在Java的面向对象特性和集合框架中。

2024-11-02 00:22:14 1110

原创 【JavaScript】匿名函数及回调函数总结

JavaScript 匿名函数匿名函数没有显式的名称, 被视为一个函数表达式,可以在不需要额外命名的情况下进行定义和使用, 通常被用作回调函数, 即将函数作为参数传递给其他函数。回调函数是在特定事件或条件发生时被调用的函数,回调函数通常用于异步编程中,比如ajax 中的success就是一个回调函数,用于处理请求成功的结果。

2024-11-01 18:58:11 453 1

原创 【Typescript】一文理清Typescript语法

使用的时候发现,myclass要处理的数据,可能是一个string,也有可能是一个number,这时候就要用到泛型。若一个函数是比较通用的函数,如下面的函数,想让他处理一组字符串、布尔类型、数值类型,则可以使用泛型。在类名的后面,大括号的前面加上, 然后就可以将T替代类里面的具体数据类型。同名函数可以根据参数的类型不同以达到不同操作,其实就是函数的重载。抽象类里面可以有抽象的属性,方法,存取器。也可以有非抽象的属性。存,会触发get方法,取,会触发set方法。指定数组的元素个数和每个元素的类型。

2024-11-01 00:29:48 451

原创 【Django】继承框架中用户模型基类AbstractUser扩展系统用户表字段

这是一种约定,用于指定自定义用户模型。AUTH_USER_MODEL 只需包含应用名和模型名,Django会根据应用的名称解析模型,而不是通过模块路径。Django项目新建好app之后,通常情况下需要首要考虑的就是可以认为最重要的用户表,即users对应的model,它对于系统来说可以说是最基础的依赖。上述的这些字段通常都是可以保留使用的,但是为了方便扩展实际中是可以进行字段添加的,例如在users相应的app包中修改其对应的models.py文件。可见添加的字段都更新进表中了。

2024-10-26 21:50:43 689

原创 【Django】创建项目、启动及app过程及遇到的问题和解决方案

整理Django创建项目、启动及app过程及遇到的问题和解决方案。

2024-10-26 09:29:51 536

原创 【Python】一文总结Python中常见错误 异常及异常处理机制

除了系统中提供的一些异常之外,我们也可以根据业务需要抛出自定义的异常,例如要求传递过来的字符串长度在6到10 位之间,不满足要求时,抛出异常。有时候,我们捕获到了异常,但暂时不知道如何处理,此时也可以抛出异常,让其他调用者进行处理。Python中提供了raise语句允许用户主动抛出异常,raise关键字后面需要提供一个异常实例或者异常类,如果传递的是异常类,则会调用无参数的构造方法来实例化对象。如果捕获到了异常,但是暂时不处理,可以直接通过raise语句抛出异常,此时raise关键字后面什么都不用写。

2024-10-25 17:59:41 1057

原创 【C++】报错“count” is ambiguous解决方案

写C++程序的过程中出现一个报错,显示“count” is ambiguous,貌似导入的其他库中含有名为count的标识符。另外一种方案就是将程序中的变量count批量替换掉,如替换成cnt(VScode中批量替换快捷键Ctrl+H)上述两种方案均可解决相应问题,个人更倾向第二种,毕竟常用英文很容易又撞上哪个标识符。查看头文件导入的是#include <bits/stdc++.h>

2024-10-24 17:53:59 683

原创 【实战案例】Django框架表单处理及数据库交互

选择选项并点击vote按钮可进行投票,投票后显示票数页面且可再次投票。之前创建的URLconf位于polls/urls.py中。对应数据库的数据也会更新。

2024-10-24 00:20:13 1121

原创 【实战案例】Django框架使用模板渲染视图页面及异常处理

Django中的视图的概念是一类具有相同功能和模板的网页的集合,在Django中,网页和其他内容都是从视图派生而来,每一个视图表现为一个Python函数(或者说方法,如果是在基于类的视图里的话),Django将会根据用户请求的URL来选择使用哪个视图(更准确的说,是根据URL中域名之后的部分),为了将URL和视图关联起来,Django使用了’URLconfs’来配置,URLconf将URL模式映射到视图。

2024-10-23 12:15:32 1309

原创 【实战案例】Django框架连接并操作数据库MySQL相关API

Django框架中默认会连接SQLite数据库,好处是方便无需远程连接,打包项目挪到其他环境安装一下依赖一会就跑起来,但是缺点也很明显,实际应用中对于数据应用分离的项目不是非常友好。在需要连接的数据库主机上实现安装好mysql数据库同时创建数据库,我这里用的跟项目名相同,叫django_first。可见可编辑的内容有组和用户,由django.contrib.auth提供,是Django开发的认证框架。接下来可以迁移数据库了,但是Django创建表的过程中依赖应用,这里基于之前的投票程序polls。

2024-10-22 17:12:19 1567

原创 【实战案例】Django框架基础之上编写第一个Django应用之基本请求和响应

在 myself 项目中配置全局 URLconf,以包含在 polls.urls 中定义的 URLconf。要在浏览器中访问它,我们需要将其映射到一个 URL——为此我们需要定义一个 URL 配置,简称为 “URLconf”。这些 URL 配置是在每个 Django 应用程序内部定义的,它们是名为 urls.py 的 Python 文件。应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者小型的投票程序。项目则是一个网站使用的配置和应用的集合。应用可以被很多个项目使用。

2024-10-21 17:18:50 441

原创 【图文指引】5分钟搭建Django轻量级框架服务

本篇内容为从零开始搭建一个Django项目,背景是windows系统且安装了最新版本的python3.13,至于python的相关安装过程省去,可自行查看其它教程。mysite/:这个目录中就是项目中实际的包,它的名称就是你要导入时的名称,例如mysite.urls。mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。至此创建好了虚拟环境目录,接下来激活虚拟环境。

2024-10-21 16:41:30 765

原创 【实战案例】Nacos从安装到服务注册发现再到配置中心(附常见问题解决方案)

这种情况下在系统中就可以采用网关来解决,有了网关,前端每次请求的时候只需要指定接口的相对路径就可以了,网关地址加接口地址,每一个请求都先到达网关,由网关将请求路由转发到具体的微服务。下述的案例背景是我有一个微服务项目,其中有一个content-service为内容服务模块,但开发中不添加启动类,仅在测试包中添加测试类,但测试类同样需要连接数据库,所以需要在配置内容中添加数据库连接相关内容。是指该配置只在有些项目中需要配置,或者该配置在每个项目中配置的值不同。

2024-10-17 16:52:27 1436

原创 Windows环境中Nacos启动失败问题排查及解决方案

如果被占用可通过上述命令查询到对应进程及其PID,之后通过PID结束相应进程。强制(/f参数)杀死 pid 为 9034 的所有进程包括子进程(/t参数)Windows系统下,从官网下载Nacos后通过命令窗口方式启动失败。这种模式修改启动脚本中的模式cluster->standalone。修改保存后可重新启动,正常启动并访问。可见提示没有tomcat服务容器。

2024-10-16 17:58:36 2380 1

原创 【实战案例】JSR303统一校验与SpringBoot项目的整合

答案是都需要校验,只不过负责的板块不一样,Controller中通常校验请求参数的合法性,包括:必填项校验,数据格式校验,比如:是否为空,是否符合一定的日期格式等。在JavaEE6规范中就定义了参数校验的规范JSR-303,它定义了Bean Validation,即对bean属性进行校验。,同一个属性定义多个校验规则属于不同的分组,比如:添加订单定义@NULL规则属于insert分组,更新订单定义@NotEmpty规则属于update分组,insert和update是分组的名称,是可以修改的。

2024-10-15 16:57:22 1189

原创 【实战案例】SpringBoot项目中异常处理通用解决方案

当存在其他异常时,如controller中存在一个除数为0的情形,如果在Controller中没有进行显示的try-catch捕获,异常会被直接抛出,由SpringMVC框架捕获并向上传递,SpringMVC会将这个异常传递给全局异常处理器类(GlobalExceptionHandler类),由于不是EffectiveStudyException类型的错误,所以交由兜底Exception处理,返回了UNKOWN_ERROR对应的错误信息(这里对于常见错误可定义特定信息返回)。

2024-10-15 15:05:04 791

原创 【实战案例】树形字典结构数据的后端解决方案

所以这条SQL查询的作用就是,从course_category表中查找所有parentid为1的父分类,并显示其下属的子分类(同时满足is_show为1),返回的结果按照父分类和子分类的排序顺序排列。通过上述说明可以看出这张表的数据是树形结构,通过根节点为0的ID可以检索到表中所有数据(前提是一棵完整的树),所以在实际项目中,后端需要一个接口,用于给前端提供该课程分类表的数据,且是树形结构的形态返回给前端。因为这里表的层级结构是固定的,总共就两级,所以可以直接用拼接的方式定义SQL语句,如下。

2024-10-14 14:51:09 1058

原创 【白话文通俗易懂搞明白并解决】跨域问题

CORS全称 cross origin resource share 跨域资源共享,浏览器的同源策略是一种安全机制,即判断是否跨域请求,从一个地址请求另一个地址,如果协议、主机、端口三者全部一致则不属于跨域,否则有一个不一致就是跨域请求。例如:比如:从http://localhost:80 到 http://localhost:81 由于端口不同,是跨域。从http://192.168.0.10:80 到 http://192.168.0.11:80 由于主机不同,是跨域。

2024-10-13 22:26:17 1225

原创 Vue前端项目运行时常用的指令整理及问题解决(包含淘宝最新镜像)

安装好后可以先配置国内镜像源,这里需要注意的是淘宝现在最新的镜像源发生了改变,很多老项目中需要作更改,这里安装nvm可以先在安装目录下的settings.txt文件中配置镜像源。对于不同的项目可能需要不同的node版本,但是每次运行新项目的时候都卸载老版本重装新版本非常麻烦,所以可以采用node版本管理工具进行不同node版本的切换。对于Vue项目运行首先需要确认node及npm正确安装,当然对于不同项目需要指定版本,在cmd中使用命令查看安装及当前使用的node及npm版本。

2024-10-13 18:38:15 571

原创 HttpClient的基本使用【IDEA版】

上述的文件可以随着工程文件一起保存,且可以通过git进行管理。Postman需要额外安装,且保存接口的时候需要注册登录账户,再者测试接口的时候需要将url及数据等同步迁移,不方便。Swagger是在线接口文档,虽然使用它也能测试但需要浏览器进入Swagger,最关键的是它并不能保存测试数据,每次一刷新测试数据就没了。这时候就需要今天的主角上场了,在IDEA中有一个非常方便的http接口测试工具httpclient,如果IDEA版本较低没有自带httpclient,需要安装httpclient插件。

2024-10-13 00:07:35 655

原创 【一文搞懂】MyBatis-Plus中核心类BaseMapper的基础和进阶用法

假设我们有一个实体类 CourseBase 和对应的 Mapper 接口,我们希望添加一个查询功能,查询所有课程名称包含指定关键字的课程。// 自定义 SQL 查询:根据名称模糊查询课程在 Mapper 接口中声明方法在 resources/mapper/ 目录下创建一个名为 CourseBaseMapper.xml 的文件。这个文件与 CourseBaseMapper 接口绑定。> <!

2024-10-12 22:06:20 4886

原创 Java项目中对于LocalDateTime序列化及反序列化的配置工具类

【代码】Java项目中对于LocalDateTime序列化及反序列化的配置工具类。

2024-10-12 18:31:47 407

原创 SpringBoot中常用注解及示例

本文只列举SpringBoot项目中最为常用的一些注解。

2024-10-12 17:58:27 739

原创 SpringBoot中采用spring4all整合Swagger过程及常用Swagger注解

Spring Boot 可以集成Swagger,Swaager根据Controller类中的注解生成接口文档 ,只要添加Swagger的依赖和配置信息即可使用它。

2024-10-12 17:19:12 529

Vue3基本语法示例代码

Vue3基本语法示例代码

2024-11-03

空空如也

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

TA关注的人

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