<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lifanping的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lifanping</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lifanping]]></copyright><item><title><![CDATA[Django数据库迁移]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148817138</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148817138</guid><author>lifanping</author><pubDate>Sat, 21 Jun 2025 23:21:17 +0800</pubDate><description><![CDATA[所以我们也可以通过自定义migration文件来实现。尤其是项目运行中必要的初始化数据，通过自定义migration文件，就可以保证不同环境下都能拥有一致初始化数据。但涉及到dev、staging、production等多个环境要同步修改时，这样就很麻烦，而且也没有一些记录。中创建、修改模型（如添加字段、修改字段类型、删除字段等）、删除模型后，执行如下命令，就能。在app的migrations中自定义migration文件，然后编写逻辑。2、没有改变数据库模型，只是想修改一些数据库数据。]]></description><category></category></item><item><title><![CDATA[自定义Django rest_framework中response的示例]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148813737</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148813737</guid><author>lifanping</author><pubDate>Sat, 21 Jun 2025 19:12:46 +0800</pubDate><description><![CDATA[在实际项目开发中，原有框架的response可能并不能完全满足我们的需求。比如我们需要定义一些更加详细的RESULT_CODE来说明情况。那么我们就可以基于原有的response进行自定义。下面是一个自定义Django rest_framework中response的示例。]]></description><category></category></item><item><title><![CDATA[Django中为api自定义一些装饰器：如参数校验等]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148809725</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148809725</guid><author>lifanping</author><pubDate>Sat, 21 Jun 2025 18:54:06 +0800</pubDate><description><![CDATA[在Django中使用了rest_framework时，一般我们会定义ModelSerializer来校验request.data中参数是否存在和参数类型。但当我们只是想简单校验一些api的url上是否存在某些参数时，该怎么办？以上代码中使用@wraps(view_func, assigned=available_attrs(view_func))的目的是。上面的装饰器，需要传递格外参数，所以必须是三层。不需要传递参数的装饰器两层就够了。我们可以自定义请求参数验证装饰器来实现。]]></description><category></category></item><item><title><![CDATA[Python 关于日期操作的一些方法集合]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148809462</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148809462</guid><author>lifanping</author><pubDate>Sat, 21 Jun 2025 13:33:36 +0800</pubDate><description><![CDATA[【代码】Python 关于日期操作的一些方法集合。]]></description><category></category></item><item><title><![CDATA[在Django中把Base64字符串保存为ImageField]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148798879</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148798879</guid><author>lifanping</author><pubDate>Fri, 20 Jun 2025 20:42:24 +0800</pubDate><description><![CDATA[前端头像字段传输的是Base64字符串，Django后端将其转换为ContentFile后进行save。首先，确保你已经安装了Pillow库，它是Django中处理图像的常用库。在数据model中使用ImageField来保存图片。]]></description><category></category></item><item><title><![CDATA[快速入门一个新编程语言]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148776636</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148776636</guid><author>lifanping</author><pubDate>Thu, 19 Jun 2025 22:53:24 +0800</pubDate><description><![CDATA[python标准库中高级数据结构：队列、栈、堆等。第三方库实现的：树、枚举等。6、常见框架：Web框架、数据处理框架、AI框架等。5、编程模式：函数式编程、面向对象编程等。2、基本控制结构：顺序、分支、循环。python内置数据结构：字符串（：在数据结构、算法的上追求高性能。4、运行模式：编译型、解释型等。]]></description><category></category></item><item><title><![CDATA[FastAPI的初步学习（Django用户过来的）]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148774135</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148774135</guid><author>lifanping</author><pubDate>Thu, 19 Jun 2025 20:03:03 +0800</pubDate><description><![CDATA[对于大型系统，可结合两者优势：
- Django：用户认证、内容管理、后台运营
- FastAPI：移动端API、实时数据处理、微服务接口
这种架构既能利用 Django 的开发效率，又能发挥 FastAPI 的性能优势，是大型项目的理想选择。]]></description><category></category></item><item><title><![CDATA[Python虚拟环境的使用]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/148653719</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/148653719</guid><author>lifanping</author><pubDate>Sat, 14 Jun 2025 15:40:13 +0800</pubDate><description><![CDATA[不同的python项目，可能会使用不同的python版本，也会使用同一个包的不同版本。为了解决依赖冲突问题，我们为不同项目建立不同的虚拟环境，来实现依赖包的隔离+版本锁定。]]></description><category></category></item><item><title><![CDATA[Moment.js的一些常用方法]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/123143385</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/123143385</guid><author>lifanping</author><pubDate>Fri, 25 Feb 2022 23:56:51 +0800</pubDate><description><![CDATA[组件官网：Moment.js 中文网


// 上周一
var lastWeekMonday = moment().week(moment().week() - 1).startOf("week");
// 本周一
var thisWeekMonday = moment().startOf("week");
//本周日
var ThisWeekSunday = moment().endOf("week");
//下周日
var NextWeekSunday = moment().week(moment().]]></description><category></category></item><item><title><![CDATA[前端new Date的一些常用方法]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/123143367</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/123143367</guid><author>lifanping</author><pubDate>Fri, 25 Feb 2022 23:52:09 +0800</pubDate><description><![CDATA[var myDate = new Date();  
myDate.getYear(); //获取当前年份(2位)  
myDate.getFullYear(); //获取完整的年份(4位,1970-????)  
myDate.getMonth(); //获取当前月份(0-11,0代表1月)  
myDate.getMonth()+1; //获取当前月份(1-12,1代表1月)
myDate.getDate(); //获取当前日(1-31)  
myDate.getDay(); //获取当前星期X(0-.]]></description><category></category></item><item><title><![CDATA[批量删除QQ空间说说和日志的js脚本]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/121515618</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/121515618</guid><author>lifanping</author><pubDate>Wed, 24 Nov 2021 15:18:37 +0800</pubDate><description><![CDATA[使用js代码模拟手工点击 自动批量删除QQ空间说说/自动批量删除QQ空间日志]]></description><category></category></item><item><title><![CDATA[分布式与集群的概念]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/120981656</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/120981656</guid><author>lifanping</author><pubDate>Thu, 28 Oct 2021 00:03:21 +0800</pubDate><description><![CDATA[分布式

指通过网络连接的多个组件

通过交换信息协作而形成的系统

集群

指同一种组件的多个实例

形成的逻辑上的整体



是分布式系统不是集群的情况

就是多个不同组件构成的系统



是集群不是分布式系统的情况，比如多个经过负载均衡的HTTP服务器，它们之间不会互相通信，如果不带上负载均衡的部分的话，一般不叫做分布式系统。
...]]></description><category></category></item><item><title><![CDATA[TCP三次握手和四次挥手]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/120981330</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/120981330</guid><author>lifanping</author><pubDate>Tue, 26 Oct 2021 21:15:50 +0800</pubDate><description><![CDATA[TCP三次握手和四次挥手

1、建立连接

客户端向服务器发送一个带SYN标志的TCP报文

服务器回复客户端一个带ACK与SYN标志的报文

客户端回应客户端一个带ACK的报文

2、连接终止协议

客户端向服务器发送一个含FIN的报文 关闭客户到服务器的数据传送

服务器收到这个FIN，它发回一个ACK报文

服务器向客户端发送一个含FIN报文

客户段发回ACK报文确认





...]]></description><category></category></item><item><title><![CDATA[Python运算符]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/120981128</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/120981128</guid><author>lifanping</author><pubDate>Tue, 26 Oct 2021 21:08:08 +0800</pubDate><description><![CDATA[Python运算符
算术运算符 赋值运算符比较运算符 逻辑运算符]]></description><category></category></item><item><title><![CDATA[Linux vim]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/120981008</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/120981008</guid><author>lifanping</author><pubDate>Tue, 26 Oct 2021 21:02:06 +0800</pubDate><description><![CDATA[命令模式 ESC

文本输入模式 i

末行模式 ：sp newfile

进⼊插⼊模式:

i: 插⼊光标前⼀个字符

I: 插⼊⾏⾸

a: 插⼊光标后⼀个字符

A: 插⼊⾏未

o: 向下新开⼀⾏,插⼊⾏⾸

O: 向上新开⼀⾏,插⼊⾏⾸



进⼊命令模式:esc

移动光标:

h: 左移

j: 下移

k: 上移

l: 右移

M: 光标移动到中间⾏

L: 光标移动到屏幕最后⼀⾏⾏⾸

G: 移动到指定⾏,⾏号 -G

w: 向后⼀次移动⼀个字

b: 向前⼀次移动⼀个字

{...]]></description><category></category></item><item><title><![CDATA[Linux用户管理]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/120980960</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/120980960</guid><author>lifanping</author><pubDate>Tue, 26 Oct 2021 21:00:23 +0800</pubDate><description><![CDATA[Unix 和 Linux 的设计初衷是多⽤户操作系统

⼀台计算机在同⼀时间可以由 多个⽤户 使⽤，多个⽤户共同享⽤系统的全部硬件和软件资源



创建

sudo adduser xxx

Useradd -m -d name /home/name

删除

sudo userdel -r newuser

密码

passwd usename

userdel usename

Su name



sudo usermod -a -G adm ⽤户名

sudo usermod -a -G s...]]></description><category></category></item><item><title><![CDATA[Linux常用命令]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/120980932</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/120980932</guid><author>lifanping</author><pubDate>Tue, 26 Oct 2021 20:59:35 +0800</pubDate><description><![CDATA[⽂件操作、⽬录操作、进程管理


			ls
			
			
			pwd
			
			
			cd
			
			
			mkdir
			
			
			touch
			
			
			rm
			
			
			clear

			
			
			
			man
			
		
			&gt;
			
			
			cat
			
			
			more
			
			
			I
			
			
			ln 源 链接
			
			
			find
			
			
			grep⽂本
			
		.]]></description><category></category></item><item><title><![CDATA[linux发展及ubuntu目录]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/120980791</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/120980791</guid><author>lifanping</author><pubDate>Tue, 26 Oct 2021 20:57:03 +0800</pubDate><description><![CDATA[linux发展

汇编 Unix操作系统原型 1969 Ken Thompson

B语言 第⼀个Unix操作系统 1970

C语言诞生 1972-1973Dennis M.Ritchie

C语言重构 Unix 操作系统 1973



Unix - Minix- Linux

Linux内核雏形 1991 林纳斯（Linus）

免费 开源 稳定 高效 多用户

服务器 嵌入式 桌面



ubuntu目录

一个根目录 /

/boot：放置 linux 系统启动时⽤到的⼀些⽂件

/dev：...]]></description><category></category></item><item><title><![CDATA[Python内置函数详解【翻译自python3.6官方文档共68个】]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/78501812</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/78501812</guid><author>lifanping</author><pubDate>Fri, 10 Nov 2017 17:22:12 +0800</pubDate><description><![CDATA[翻译源 来自：https://docs.python.org/3/library/functions.html 



abs(x)

返回一个数的绝对值。参数可以是一个整数或一个浮点数。若参数是复数，返回复数的模

all(iterable)

若 可迭代对象中所有元素为真（或可迭代对象为空），则返回True。等价于：


def all(iterable):
    for element i...]]></description><category></category></item><item><title><![CDATA[Python之33个关键字详解]]></title><link>https://blog.youkuaiyun.com/lifanping/article/details/78501046</link><guid>https://blog.youkuaiyun.com/lifanping/article/details/78501046</guid><author>lifanping</author><pubDate>Fri, 10 Nov 2017 16:24:11 +0800</pubDate><description><![CDATA[关键字详解]]></description><category></category></item></channel></rss>