avatar
Articles
288
Tags
201
Categories
0

karr's blog
Search

karr's blog

世界时间格式转本地时间
Created2023-08-23
时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理UTC:世界标准时间,在标准时间上加上8小时,即东八区时间,也就是北京时间。举例北京时间:2020-01-14 00:00:00对应的国际标准时间格式为:2020-01-13T16:00:00.000Z 12345678910from datetime import datetime, timedeltadef test_format_time(): source_time = '2020-01-13T16:00:00.000Z' date_ = datetime.strptime(source_time, "%Y-%m-%dT%H:%M:%S.%fZ") # local_time = 2020-01-14 00:00:00 local_time = date_ + timedelta(hours=8) print(local_time)
fastapi 接口阻塞问题处理
Created2023-08-15
原文地址:https://blog.csdn.net/qq_42006301/article/details/124873383 背景在使用fastapi框架开发时,遇到一个坑,在请求某个耗时的接口时,再请求其他接口,发现请求都被阻塞卡住了,经过排查问题,发现是async使用不当导致的 问题复现这里写了一个小demo文件,里面有耗时函数work 和 两个接口 /test1、 /test2 1234567891011121314151617181920def work(s): print("work start work") time.sleep(s) print("work end work")@api.get("/test1")async def test1(): print("func: test1") return "test1"@api.get("/test2")async def test2(): a ...
requests源码阅读笔记
Created2023-08-12
requests框架结构整个架构包括两部分:Session持久化参数和HTTPAdapter适配器连接请求,其余部分都是 urllib3 的内容。
scrapy download 中间件
Created2023-08-09
request与response的优先级是相反的方向request:数值越低优先级越高response:数值越低优先级越低 使用类似selenium的请求中间件,则直接在SpiderDownloaderMiddleware -> process_request()中写对应的代码即可,并且直接返回HttpResponse()即可
Token和JWT的区别
Created2023-07-28
服务端验证客户端发送的 token 信息要进行数据的查询操作 Jwt 验证客户端发来的 token 就不用,在服务端使用密钥校验就可以,不用数据库的查询。 Token需要查库验证 token 是否有效,而 JWT 不用查库或者少查库,直接在服务端进行校验,并且不用查库。因为用户的信息及加密信息在第二部分 payload 和第三部分签证中已经生成,只要在服务端进行校验就行,并且校验也是 JWT 自己实现的。 TOKEN令牌,是访问资源的凭证 认证流程: 用户输入用户名和密码,发送给服务器。 服务器验证用户名和密码,正确的话就返回一个签名过的token,浏览器客户端拿到这个token。 客户端自己保存token,后续每次请求中,浏览器会把token作为http header发送给服务器,服务器验证签名是否有效,如果有效那么认证就成功,可以返回客户端需要的数据。 JWT概念:JWT是json web token缩写。使用RESTFUL接口定义,使用在普通的web。将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。 ...
fastapi文件上传下载
Created2023-07-26
123456789101112131415161718192021222324252627282930import osimport timefrom fastapi import APIRouter, File, UploadFilefrom fastapi.responses import FileResponserouter = APIRouter(tags=['Upload'], prefix='/upload')@router.post("", summary='文件上传')def create(uploadfile: UploadFile = File(...)): filename = f"{str(time.time()).replace('.','')}-{uploadfile.filename}" path = os.path.join("upload", ...
scrapy
Created2023-07-25
https://gitee.com/bitterteaer/scrapy-learn.git 在代码中运行scrapy的方法@https://www.cnblogs.com/kakashiS/p/7475742.html官方文档给出了两个scrapy工具: scrapy.crawler.CrawlerRunner, runs crawlers inside an already setup Twisted reactor scrapy.crawler.CrawlerProcess, 父类是CrawlerRunner scrapy框架基于Twisted异步网络库,CrawlerRunner和CrawlerProcess帮助我们从Twisted reactor内部启动scrapy。 直接使用CrawlerRunner可以更精细的控制crawler进程,要手动指定Twisted reactor关闭后的回调函数。指定如果不打算在应用程序中运行更多的Twistedreactor,使用子类CrawlerProcess则更合适。 下面简单是文档中给的用法示例: 12345678910111213 ...
celery
Created2023-07-23
https://gitee.com/bitterteaer/celery-learn.git Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。 基本使用celery_task 1234567891011import celeryimport timebackend='redis://127.0.0.1:6379/1'broker='redis://127.0.0.1:6379/2'cel=celery.Celery('test',backend=backend,broker=broker)@cel.taskdef send_email(name): print("向%s发送邮件..."%name) time.sleep(5) print("向%s发送邮件完成"%name) return "ok" 注意,异步任务文件命令执行: ...
appsmith使用第三方库进行http请求
Created2023-07-20
安装 使用12345678910111213141516171819export default { debugMeter: async () => { let rID = Number(Select1.selectedOptionValue); let metricName = Input6.text; let meterAsset = Input7.text; let busAddr = Input8.text; let meterAddr = Number(Input9.text); let registerAddr = Number(Input10.text); let registerCount = Number(Input11.text); let ratio = Number(Input12.text); let result = await ky.post("http://172.16.0.181:9090/debug_meter",{json:{rID,metricName,meter ...
sqlalchemy created_at字段自动生成当前时间写法
Created2023-07-15
1created_at = Column(Integer, nullable=False, default=lambda: int(time.time())) 使用lambda即可使其实时生成,如果不使用lambda,则无法实时获取时间,只会记录第一次的时间
1…181920…29
avatar
karr
世界那么大,我想去看看。
Articles
288
Tags
201
Categories
0
gitee
Announcement
This is my Blog
Recent Post
Git报错: Failed to connect to github.com port 443 解决方案2025-03-30
AI Agent 系统架构图2025-03-28
固定整个页面只有100%的高度,不能进行下拉,当组件的内容超过100%时候在个自组件内部加上滚动条2025-03-12
html保证背景色铺满整个页面2025-03-12
importlib.import_module强制从文件加载2025-03-07
Tags
vue3 滚动 错误码 GROUP BY hexo java jwt 抖音 filter 架构 gap lock 前端 opencv Windows unicode Android Studio javascript 优化 vue 救猫咪 react-props-warning json_extract uvicorn 线程 图片去重 JSON mysqlclient npm Mutable go aiohttp rewrite 疫情防控 操作系统 滚动条 OTP 无人机 ORM text css
Archives
  • March 20256
  • February 20252
  • January 20253
  • November 20242
  • October 20243
  • September 20247
  • August 202410
  • July 202423
Info
Article :
288
UV :
PV :
Last Update :
©2024 - 2025 By karr
Framework Hexo|Theme Butterfly
Search
Loading the Database