<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[无忧无虑的Coding~~~]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ffei060828</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ffei060828]]></copyright><item><title><![CDATA[python多线程编程]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/156184386</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/156184386</guid><author>ffei060828</author><pubDate>Tue, 23 Dec 2025 08:59:07 +0800</pubDate><description><![CDATA[本文介绍了Python多线程编程的两种实现方式：直接使用threading.Thread类和继承threading.Thread类。基础方式通过定义目标函数并创建线程对象实现，进阶方式则通过重写run()方法自定义线程行为。文章还重点讲解了线程安全问题及解决方法（使用threading.Lock），并介绍了线程池和守护线程两种常用工具。线程池适用于大量线程场景，守护线程则会在主线程结束时自动终止。代码示例展示了各种实现方式的具体应用。]]></description><category></category></item><item><title><![CDATA[Spring Boot 数据库连接池入门]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150979421</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150979421</guid><author>ffei060828</author><pubDate>Fri, 29 Aug 2025 11:28:17 +0800</pubDate><description><![CDATA[在我们的项目中，数据库连接池基本是必不可少的组件。在目前数据库连接池的选型中，主要是至于怎么选择，两者都非常优秀，不用过多纠结。]]></description><category></category></item><item><title><![CDATA[剖析 Spring 多数据源]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150976196</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150976196</guid><author>ffei060828</author><pubDate>Fri, 29 Aug 2025 10:13:41 +0800</pubDate><description><![CDATA[虽然笔者提供了一个RoutingDataSource，并发布到了maven中央仓库，但是并没有期望真的会有人使用。想告诉读者的是，“知其然，知其所以然”。研究源码时，请主要思考以下问题：1、笔者提供了一个@Routing注解，但是并没有spring aop配置，就实现了AOP切换功能，是如何实现的。因为@Routing本身也要对类代理，才能告诉spring框架使用哪个数据源。2、@Routing注解和spring提供的@Transactional注解，都需要对类进行代理，且前者需要在后者之前发挥作用。]]></description><category></category></item><item><title><![CDATA[Spring Boot 多数据源（读写分离）入门]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150975821</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150975821</guid><author>ffei060828</author><pubDate>Fri, 29 Aug 2025 10:05:25 +0800</pubDate><description><![CDATA[简单来说，通过继承 AbstractRoutingDataSource 抽象类，实现一个管理项目中多个 DataSource 的。]]></description><category></category></item><item><title><![CDATA[XXL-JOB 定时任务极简入门]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150953588</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150953588</guid><author>ffei060828</author><pubDate>Thu, 28 Aug 2025 15:35:29 +0800</pubDate><description><![CDATA[XXL-JOB 是一个分布式任务调度平台，其核心设计目标是开发迅速、学习简单、轻量级、易扩展。]]></description><category></category></item><item><title><![CDATA[Spring Boot 定时任务入门]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150953116</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150953116</guid><author>ffei060828</author><pubDate>Thu, 28 Aug 2025 15:23:47 +0800</pubDate><description><![CDATA[在产品的色彩斑斓的黑的需求中，有存在一类需求，是需要去的，此时就需要使用到。例如说，每分钟扫描超时支付的订单，每小时清理一次日志文件，每天统计前一天的数据并生成报表，每个月月初的工资单的推送，每年一次的生日提醒等等。在日常开发中，我们很少直接使用 Timer 或 ScheduledExecutorService 来实现定时任务的需求。所以，一般情况下，我们会选择专业的。关于“”的叫法，也有叫“”的。在英文上，有 Task 也有 Job。本质是一样的，本文两种都会用。然后，一般来说是调度任务，定时执行。]]></description><category></category></item><item><title><![CDATA[Spring Boot 参数校验 Validation 入门]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150071711</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150071711</guid><author>ffei060828</author><pubDate>Mon, 11 Aug 2025 09:29:15 +0800</pubDate><description><![CDATA[文章摘要：本文介绍了在Spring Boot中使用Hibernate Validator进行参数校验的方法。概述了参数校验的重要性，列举了Bean Validation和Hibernate Validator提供的常用校验注解，并对比了@Valid和@Validated注解的区别。文章包含快速入门指南，展示如何通过引入依赖、配置Application类来实现对Controller和Service层的参数校验。核心要点包括：1)参数校验是保证API可靠性的必要环节；2)通过注解方式实现声明式校验；3)@Val]]></description><category></category></item><item><title><![CDATA[Spring Boot Lombok 入门]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150067407</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150067407</guid><author>ffei060828</author><pubDate>Fri, 08 Aug 2025 15:47:18 +0800</pubDate><description><![CDATA[Lombok 是一个 Java 工具，通过使用其定义的注解，自动生成常见的冗余代码，提升开发效率。举个例子，在 Java POJO 类上，添加 @Setter 和 @Getter 注解，自动生成 set、get 方法的代码。安装完成，需要重启 IDEA 来让该插件生效。生效完成后，我们可以在 IDEA 的设置中，找到 IDEA Lombok 功能。如下图所示：Lombok 设置。]]></description><category></category></item><item><title><![CDATA[Spring Boot 对象转换 MapStruct 入门]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/150062387</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/150062387</guid><author>ffei060828</author><pubDate>Fri, 08 Aug 2025 15:19:35 +0800</pubDate><description><![CDATA[友情提示：MapStruct 和 Spring Boot 没有直接关系，单纯放在这个系列。为了让应用的代码更易维护，我们往往会将项目进行分层。在《阿里巴巴 Java 开发手册》中，推荐分层如下图：显然，手动进行对象的转换，虽然执行性能很高，但是开发效率非常低下，且可能会存在漏写的情况。因此，我们会选择借助框架或是工具来实现对象的转换。例如说：MapStruct 示例MapStruct 是用于生成类型安全的 Bean 映射类的 Java 注解处理器。]]></description><category></category></item><item><title><![CDATA[pyinstall 打包Django程序]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143835424</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143835424</guid><author>ffei060828</author><pubDate>Sun, 17 Nov 2024 17:34:53 +0800</pubDate><description><![CDATA[需要配置.spec文件项目中的对应项目需要写入hiddenimports里面，提示缺少什么，添加上该模块，然后重新打包。复制模板templates文件夹和static文件夹到。启动服务时提示 No module named XXX。文件，需要检查所有应用，添加上改文件，内容为空。执行如下命令，生成mannage.exe文件。如果有其他外部文件也需要手工复制。解决办法：只需在命令末尾加上。原因是不是每个应用中都有。]]></description><category></category></item><item><title><![CDATA[python操作excel生成报表openpyxl]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143475165</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143475165</guid><author>ffei060828</author><pubDate>Mon, 04 Nov 2024 09:28:14 +0800</pubDate><description><![CDATA[python操作excel有很多方式，每种方式都有一些缺陷和遗憾。]]></description><category></category></item><item><title><![CDATA[Django入门教程——补充功能]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143279930</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143279930</guid><author>ffei060828</author><pubDate>Mon, 28 Oct 2024 09:16:06 +0800</pubDate><description><![CDATA[第七章 补充功能
登录验证码
为什么网站登录的时候需要验证码

为了防止机器人，通过程序多次进行网站密码的验证，从而进行网站密码的破解。
避免用户过快点击，缓解了服务器的请求压力。

Captcha库
安装第三方库验证码库captcha：pip install captcha
# 生成图片验证码
import random
from captcha.image import ImageCaptcha
 
 
# 生成随机字符串
code = random.sample('abcdefghijklmnopqr]]></description><category></category></item><item><title><![CDATA[Django入门教程——用户管理实现]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143279785</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143279785</guid><author>ffei060828</author><pubDate>Mon, 28 Oct 2024 09:13:54 +0800</pubDate><description><![CDATA[第六章  用户管理实现
教学目的

复习数据的增删改查的实现。
了解数据MD5加密算法以及实现
模型表单中，自定义控件的使用
中间件的原理和使用

需求分析
系统问题

员工档案涉及到员工的秘密，不能让任何人都可以看到，主要是人事部门进行数据的维护，公司领导具有数据的查看权限。
现在我们开发出来的功能，所有人都可以进行访问，都可以进行数据的修改，不符合需求。

系统功能

管理员用户可以进行用户管理，实现用户的添加、修改、删除等
普通用户可以登录系统，修改个人密码等

用户管理相关数据模型
数据模型设计

]]></description><category></category></item><item><title><![CDATA[Django入门教程——动态表格分页展示数据]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143279692</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143279692</guid><author>ffei060828</author><pubDate>Mon, 28 Oct 2024 09:06:38 +0800</pubDate><description><![CDATA[基本语法结构：-- html标签 -- > </ script >-- html标签 -- > </ script >-- html标签 -- > </ script >-- html标签 -- > </ script >-- html标签 -- > </ script >!---- html标签 -- > </ script >---- html标签 -- > </ script ></-- html标签 -- > </ script >]]></description><category></category></item><item><title><![CDATA[Django入门教程——员工数据管理]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143279679</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143279679</guid><author>ffei060828</author><pubDate>Mon, 28 Oct 2024 09:05:45 +0800</pubDate><description><![CDATA[如果您正在构建一个数据库驱动的应用程序，那么您很有可能会用到与Django模型密切相关的表单。Django 提供了一个辅助类让你可以从一个 Django 模型创建一个表单，就是将Model与Form进行绑定，Form有自动生成表单的作用。参考：https://docs.djangoproject.com/zh-hans/5.1/topics/forms/modelforms/]]></description><category></category></item><item><title><![CDATA[Django入门教程——部门数据的管理]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143279609</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143279609</guid><author>ffei060828</author><pubDate>Mon, 28 Oct 2024 09:04:46 +0800</pubDate><description><![CDATA[简单查询记录的基本语法，参考：https://docs.djangoproject.com/zh-hans/5.1/ref/models/querysets/#django.db.models.query.QuerySet.get。创建表格用于数据的展示，参考：https://layui.dev/docs/2/table/#examples。layUI的弹出层组件，参考：https://layui.dev/docs/2/layer/函数，返回查询集匹配的第一个对象，如果没有匹配的对象，则返回。]]></description><category></category></item><item><title><![CDATA[Django入门教程——数据模型建立]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143279529</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143279529</guid><author>ffei060828</author><pubDate>Mon, 28 Oct 2024 09:01:32 +0800</pubDate><description><![CDATA[动态网站就是当用户发起访问请求时 ，网站实时地从数据库提取内容并呈现在网页上，在这类动态网站中，大多数是通过数据库实现对数据的保存和读取的，所以数据库是网站最基本和底层的组成部分。Python 本身有读取数据库的模块可以通过 SQL 语句直接实现程序和数据库的交互。Django 用另外一种方式解决了这个问题 ，在这种方式中不需要开发者使用 SQL 语句，而是使用更 Python 化的方式实现对数据库的操作，这就是 ORM，对象关系映射。]]></description><category></category></item><item><title><![CDATA[Django入门教程——实战课程简介]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/143279318</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/143279318</guid><author>ffei060828</author><pubDate>Mon, 28 Oct 2024 08:58:25 +0800</pubDate><description><![CDATA[一般认为 Django开发框架(简称 Django)诞生的时间是 2003年的金秋时节。大洋彼岸的美国有两位程序员在使用后来被冠名为Django的框架做网站开发，这是全世界首次使用。2008年虽然遇到了金融危机，但依然挡不住技术的进步，Django有了自己的DSF(Diango Software Foundation)，后来 Django的发展就由这个基金会来主导了。项目（project）：一个包含了组成单个网站的所有文件的目录。]]></description><category></category></item><item><title><![CDATA[中文系统网站开发易错误词语]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/142327315</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/142327315</guid><author>ffei060828</author><pubDate>Wed, 18 Sep 2024 10:55:12 +0800</pubDate><description><![CDATA[登录”的意思是“登记”，“登陆”的意思是“登上陆地”或“比喻商品打入某地市场”，因此路由器、网址、APP上填写用户名、密码的行为只能称为“登录”。“稍候”是一个短语，意思是“稍微等一下”；“请稍后”这句话没有完结，后面必须出现动词或动词短语，如“请稍后给我打电话”“请稍后去办公室”等。“在互联网上发表帖子”，因此“发帖”“帖子”为规范用法。]]></description><category></category></item><item><title><![CDATA[VScode 修改 Markdown Preview Enhanced 字体以及大纲编号]]></title><link>https://blog.youkuaiyun.com/ffei060828/article/details/140626575</link><guid>https://blog.youkuaiyun.com/ffei060828/article/details/140626575</guid><author>ffei060828</author><pubDate>Tue, 23 Jul 2024 09:41:34 +0800</pubDate><description><![CDATA[按 F1 或者 Ctrl + Shift + P，输入 Customize CSS，选择 Markdown Preview Enhanced 对应的css （建议全局）在刚才打开的style.less 文件中输入以下样式,注意样式不要放在.markdown-preview.markdown-preview 中。]]></description><category></category></item></channel></rss>