DRF: 权限认证
DRF: 权限认证

Django REST Framework(DRF)的权限认证是用于保护 API 的重要机制,它允许开发者控制谁可以访问 API 资源。DRF 提供了多种权限类,可以灵活地根据用户的身份、角色、请求数据等进行授权判断。1. 认证与权限的区别在 DRF 中,认证(Authentication) ...

tongqing tongqing
2025年04月28日: 11时36分
Python中的Functiontools
Python中的Functiontools

在 Python 中,"function tools" 通常指的是一些与函数操作相关的工具或功能,它们可以帮助你更加灵活和高效地使用和管理函数。以下是一些常用的 Python 函数工具和相关模块,它们可以简化函数的使用、调用、优化以及装饰等操作。1. functools 模块functools...

tongqing tongqing
2025年04月27日: 10时53分
DRF中的action装饰器介绍
DRF中的action装饰器介绍

在 Django REST Framework (DRF) 中,@action 装饰器主要用于为 ViewSet 添加自定义的操作。它使得你能够定义超出标准 CRUD 操作(list、create、retrieve、update、destroy)之外的额外行为。这些自定义操作通常用来处理一些特...

tongqing tongqing
2025年04月27日: 10时05分
Celery使用介绍
Celery使用介绍

Celery 是一个强大的 分布式任务队列,非常适合用于处理异步任务、定时任务以及后台任务等。它支持多种消息代理(如 Redis、RabbitMQ)和结果存储(如 Redis、数据库等)。以下是 Celery 使用的一个完整总结:🛠️ Celery 基本使用方法1. 安装 Celery 和消息...

tongqing tongqing
2025年04月25日: 02时05分
django+celery
django+celery

使用 django-celery-beat 来管理定时任务,这样可以:不用重启服务就能添加/修改任务支持数据库持久化定时任务还能用 Admin 界面可视化管理任务 💡🚀 一套完整方案来实现 Django + Celery + 定时任务✅ 步骤 1:安装依赖pip install celery ...

tongqing tongqing
2025年04月25日: 10时05分
无图片
redis中set操作集

在 Redis 中,Set 是一种无序、不重复的集合类型,提供了一套非常实用的命令操作集合。下面是最常用的 set 类型操作命令整理 ✅:🔹 添加元素:SADDSADD key member [member ...]示例:SADD myset "apple" "banana" "orange"...

tongqing tongqing
2025年04月25日: 09时52分
AutoOps - Agent
AutoOps - Agent

                   +----------------------+               &nb...

tongqing tongqing
2025年04月07日: 07时52分
Go语言的interface注意事项: interface本身是指向“数据类型”的指针,不可以使用指针指向接口
Go语言的interface注意事项: interface本身是指向“数据类型”的指针,不可以使用指针指向接口

在 Go 中,接口本身是一种数据类型,但它的设计方式与其他类型(如结构体)有所不同。以下是关于接口和指向接口的指针的详细解释:1. 接口的定义接口是一个抽象类型,它定义了一组方法,但并不具体实现它们。接口的值包含了两个部分:类型:实现了接口的具体类型。值:实现该接口的具体实例。2. 接口指针的...

tongqing tongqing
2025年04月02日: 10时36分
Goland定时任务方案
Goland定时任务方案

如果你的运维 Agent 需要在 Linux 和 Windows 环境中都能运行,并且支持定时任务功能,选择一个跨平台的方案会是一个明智的选择。以下是几个适合的方案,考虑到跨平台兼容性和易于实现的要求:1. 使用 Go 语言的定时任务库推荐方案:github.com/robfig/cron/v...

tongqing tongqing
2025年03月27日: 02时48分
grpc流的使用方法和注意事项
grpc流的使用方法和注意事项

我们将分别实现客户端流式、服务端流式和双向流式模式。步骤 1: 创建 Protobuf 文件首先确保你已经有了如下的 Protobuf 文件 hello_stream.proto:syntax = "proto3"; package hello_stream; option go_...

tongqing tongqing
2025年03月26日: 04时08分
TLS握手过程详解
TLS握手过程详解

下面是完整的 TLS 认证过程 和 每个阶段是否加密 的详细解释:TLS 握手过程(Handshake)TLS 握手的主要目标是确保客户端和服务器建立一个安全的连接。握手过程包括密钥交换、身份验证、生成对称加密密钥以及验证通信的完整性。以下是每个阶段的详细描述,包括是否涉及加密。阶段 1:客户...

tongqing tongqing
2025年03月25日: 06时06分
openssl制作证书过程
openssl制作证书过程

完整证书生成流程1. 准备 OpenSSL 配置文件 (openssl.conf)首先,创建一个 openssl.conf 配置文件,确保它包含 SANs(Subject Alternative Names),以避免使用过时的 Common Name(CN)字段。[ req ] defaul...

tongqing tongqing
2025年03月25日: 05时53分
Go语言执行本地命令
Go语言执行本地命令

在 Go 语言中,exec 是用来执行外部命令的包,位于 os/exec 包中。这个包提供了用于执行外部命令的函数,可以让 Go 程序启动新进程来运行外部命令,并与这些进程进行交互(比如获取命令输出或传递输入)。基本用法下面是一个基本示例,展示如何在 Go 中使用 exec.Command 来...

tongqing tongqing
2025年03月23日: 11时59分
Go语言中的raw string的使用方式: 反引号
Go语言中的raw string的使用方式: 反引号

在 Go 语言中,反引号(`)有两种常见的用途:字符串字面量(Raw String Literal)包的导入路径(Go Modules)下面我分别详细解释这两种用途。1. 字符串字面量(Raw String Literal)Go 语言使用反引号(`)来表示原始字符串字面量。这种字符串的内容完全...

tongqing tongqing
2025年03月20日: 05时40分
Go语言类型判断:断言
Go语言类型判断:断言

Go语言的断言(Assertion)主要体现在两种方面:类型断言和接口断言。它们是用于从一个接口类型中提取具体类型的机制。1. 类型断言(Type Assertion)类型断言用于将接口类型的变量转换为具体类型。语法如下:value, ok := x.(T) 其中:x 是一个接口类型的变量。...

tongqing tongqing
2025年03月20日: 03时40分
在Go语言中需要手动申请内存的变量类型
在Go语言中需要手动申请内存的变量类型

在Go语言中,以下几种类型的变量通常需要手动申请内存(同时这些变量在函数调用传参时都是指针传递):1. 切片(slice): 切片本身是一个引用类型,它只是一个指向底层数组的指针。如果你想创建一个切片并为它分配内存,你需要手动分配底层数组的内存。 slice := make([]int, 10...

tongqing tongqing
2025年03月20日: 11时30分
Go语言中的select语句的使用细节
Go语言中的select语句的使用细节

Go select 语句详解:并发编程中的关键工具在 Go 语言中,select 语句是一个非常强大的工具,它使得在并发编程中操作多个 channel(通道)变得简单而直观。通过 select,你可以等待多个通道中的数据,处理异步任务、超时操作,甚至避免死锁。今天,我们将深入了解 Go 中 s...

tongqing tongqing
2025年03月19日: 11时16分
Go语言中的reflect
Go语言中的reflect

Go 语言中的反射(Reflection)是指程序在运行时检查类型或修改对象值的能力。反射是 Go 语言的一个强大功能,它允许程序动态地操作对象的类型和数据。通过反射,我们可以在不知道具体类型的情况下进行操作,极大地提高了代码的灵活性和扩展性。Go 语言提供了 reflect 包来实现反射,反...

tongqing tongqing
2025年03月17日: 02时37分
Go语言中的切片容量
Go语言中的切片容量

一、什么是切片容量在go语言中,切片是动态数组,其结构定义如下:type SliceHeader struct { Data: uintprt Len: int Cap: int }Data: 用于存放数组数据Len:用于存放已经初始化的内存长度Cap:用于存放...

tongqing tongqing
2025年03月17日: 02时17分
Python中classmethod和staticmethod装饰器的区别与联系
Python中classmethod和staticmethod装饰器的区别与联系

classmethod 和 staticmethod 都是 Python 中的装饰器,用来定义类的方法,区别主要在于它们如何访问类和实例的状态。1. classmethod(类方法)classmethod 定义的方法的第一个参数是类本身(通常命名为 cls)。类方法可以访问类的属性和其他类方法...

tongqing tongqing
2025年03月13日: 03时39分
Python中的__call__方法是如何工作的
Python中的__call__方法是如何工作的

让我们详细解释一下元类的 __call__ 方法是如何工作的,以及为什么它会在类实例化时被调用。元类和 __call__ 方法在Python中,元类是用来创建类的“类”。默认情况下,所有类都是由 type 元类创建的。元类可以通过重写 __call__ 方法来控制类的实例化过程。当你创建一个类...

tongqing tongqing
2025年03月13日: 03时36分
设计模式-访问者模式
设计模式-访问者模式

访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不改变对象结构的前提下,定义作用于这些对象的新操作。它通过将操作封装在一个访问者对象中,使得对一组对象的不同操作可以分离开来,从而实现操作的扩展。1. 问题背景假设你有一组复杂的对象,这些对象有不同的子类,并且你需要对...

tongqing tongqing
2025年03月08日: 03时20分
如何识别请求是否是ajax发出的?
如何识别请求是否是ajax发出的?

AJAX 请求的特征AJAX(Asynchronous JavaScript and XML)请求是通过 JavaScript 发起的异步 HTTP 请求。与传统的页面请求相比,AJAX 请求具有以下特征:异步性:AJAX 请求不会导致页面刷新,而是在后台与服务器通信。页面可以继续响应用户操作...

tongqing tongqing
2025年03月08日: 01时20分
从责任链模式角度查看Django处理web请求的过程
从责任链模式角度查看Django处理web请求的过程

Django 的请求处理流程正是基于这种思想设计的。以下是 Django 如何处理 Web 请求的详细过程,以及每个 App 中的文件何时会被执行。Django 的请求处理流程(责任链模式)1. 请求到达 WSGI 接口当用户发起一个 HTTP 请求时,请求首先到达 Django 的 WSGI...

tongqing tongqing
2025年03月08日: 01时07分
Django中自定义信号的使用和配置示例
Django中自定义信号的使用和配置示例

下面是在django中定义一个自定义信号,并且使用信号的示例在Django中,提供类django.dispatch.Signal作为内置信号/自定义信号的基类,该类是一个发布订阅模型,具体定义可以参考官方文档: https://docs.djangoproject.com/zh-hans/4....

tongqing tongqing
2025年03月08日: 12时51分
Django中信号是如何工作的?
Django中信号是如何工作的?

理解 Django 信号的工作流程,可以从 发布-订阅模式 的角度来帮助你更好地理解。信号允许一个对象在某个事件发生时通知其他对象,而不需要这些对象之间有直接的依赖关系。也就是说,发送信号的部分和接收信号的部分是解耦的,它们不需要知道对方的存在,只通过信号来进行沟通。1. 信号的核心概念发送者...

tongqing tongqing
2025年03月07日: 04时52分
Django中的信号使用
Django中的信号使用

在Django中,信号系统是一种用于在某些事件发生时自动执行某些代码的机制。它允许应用程序中的不同组件彼此解耦,即使它们之间没有直接的依赖关系。信号系统可以用来通知某些动作的发生(例如模型保存或删除、用户登录等),而其他组件可以根据这些事件进行响应。1. 信号的基本概念信号:是一个事件的通知,...

tongqing tongqing
2025年03月07日: 04时29分
加密:为什么使用hmac来对api做签名?
加密:为什么使用hmac来对api做签名?

选择使用 HMAC(Hash-based Message Authentication Code) 来为 API 请求签名,主要是基于它的以下几个优势:1. 验证数据完整性和真实性HMAC 结合了哈希算法和密钥,能确保请求的数据在传输过程中没有被篡改。如果消息在传输过程中被篡改,签名会与服务器...

tongqing tongqing
2025年03月07日: 03时47分
加密:Hash函数在Web系统中的应用
加密:Hash函数在Web系统中的应用

在 Web 开发中,哈希函数主要用于数据完整性、密码存储、请求签名、缓存键生成等场景。下面详细介绍这些哈希函数在 Web 中的应用。1. 密码存储与验证Web 应用存储用户密码时,绝对不能直接存储明文密码,而是要使用哈希算法进行加密存储。推荐的密码存储方式bcrypt(推荐):适用于存储密码,...

tongqing tongqing
2025年03月07日: 03时15分
Python中importlib库
Python中importlib库

from importlib import import_module 是 Python 中用于动态导入模块的语句。1. import_module 的作用import_module() 允许你 动态导入 Python 模块,而不是在代码编写时直接使用 import 语句。这在以下情况非常有用...

tongqing tongqing
2025年03月07日: 02时43分