随笔分类 - python
摘要:from contextlib import asynccontextmanager from fastapi import FastAPI @asynccontextmanager async def lifespan(app: FastAPI): # 启动逻辑 print("fastapi服务启
阅读全文
摘要:""" 观察者模式 """ class Observer: def update(self, notice): pass class Notice: def __init__(self): self.observers = [] def attach(self, obs: Observer): se
阅读全文
摘要:1.迭代器 class MyIterator: def __init__(self, data): self.data = data self.index = 0 def __iter__(self): return self def __next__(self): if self.index >=
阅读全文
摘要:0.安装依赖 pip install websockets 1.服务端 import asyncio from typing import AsyncIterable, Dict, Iterable, Set, Union import websockets import websockets.pr
阅读全文
摘要:import logging logging.disable(logging.CRITICAL) # 禁用所有级别的日志
阅读全文
摘要:1.安装kafka-python pip install kafka-python 2.生产者 """ 基于kafka-python的kafka生产者 """ import json from typing import List, Optional from kafka import KafkaP
阅读全文
摘要:try: ...except Exception as e: ...finally: ... "except"尝试捕获try代码块中发生的异常。 "finally"不论try和except中的代码块是否发生异常,都会执行。 finally代码块执行时机 finally代码块会在"退出当前函数或者代
阅读全文
摘要:from typing import Callable from fastapi import Request from fastapi.responses import Response def cors_handle_middleware(request: Request, call_next:
阅读全文
摘要:import asyncio from asyncio import Semaphore, Task, events from inspect import iscoroutinefunction from typing import Any, Optional, Union from loguru
阅读全文
摘要:asyncio.run # 在当前线程中创建新的事件循环并执行传入的协程# 源码解读:def run(main, *, debug=False): if events._get_running_loop() is not None: # 从当前线程(threadding.local)中尝试获取正在运
阅读全文
摘要:import asynciofrom inspect import iscoroutinefunctionfrom typing import Any, Awaitable, Listclass CoroutinePool: def __init__(self, max_size: int):
阅读全文
摘要:import asyncio class AsyncReadWriteLock: def __init__(self): self._readers = 0 self._writers_waiting = 0 self._writer_active = False self._lock = asyn
阅读全文
摘要:背景 python利用多核就需要开启多进程,如果多进程之间需要共享数据又不希望引入第三方的服务,就需要使用共享内存。 multiprocessing.shared_memory python 3.8之后,python内置的multiprocessing库提供了一种新的共享内存方式,shared_me
阅读全文
摘要:安装 pip install "redis[hiredis]" 检查是否启用hiredis import redisimport redis.connectionfrom redis.connection import ConnectionPoolfrom redis.utils import HI
阅读全文
摘要:import re options = "i" regex_pattern = re.escape(字符串) query = {"$regex": regex_pattern, "$options": options} 结果 = 集合.find(query) # 这里用re.escape套一下字符串
阅读全文
摘要:1.在fastapi的中间件中,如果不做处理直接抛出HttpException,框架是不会捕获并处理成响应的,这时客户端看到的就是500 Internal Server Error。 2.为了能在中间件中直接抛出异常,方便写代码,需要自己添加一个中间件来对所有中间件的异常做处理。该中间件代码如下:
阅读全文
摘要:数据格式: data参数通常用于发送application/x-www-form-urlencoded格式的数据。这意味着数据会被编码为键值对,类似于表单提交的数据。 json参数用于发送application/json格式的数据。这意味着数据会被序列化为JSON字符串。 自动编码: 当使用data
阅读全文
摘要:基本类型注释 # 变量名后面用 ":" 表示类型注释string_val :str = ""int_val :int = 0float_val :float = 0.0dic_val :dict = dict()list_val :list = list()tuple_val :tuple = tu
阅读全文
摘要:介绍 python中的"类"也是对象,加载"类"也有创建对象的过程。用于创建"类"对象的,就是元类。元类可以自定义。 元类示例 class DemoMeta(type): def __new__(cls, name, bases, attrs): cls_instance = super().__n
阅读全文
摘要:"""布隆过滤器基础类"""import mmh3from redis import Redisimport mathfrom typing import List, Union, Tuplefrom loguru import loggerimport hashlibclass BaseBlo
阅读全文