自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

python小菜鸡的博客

路漫漫其修远兮,吾将上下而求索

  • 博客(159)
  • 收藏
  • 关注

原创 python 使用opencv 切割图片的白边(横切和竖切)

废话不多说直接上码,分享使人进步,奥利给:from PIL import Imagefrom itertools import groupbyimport cv2import datetimeimport os# from core.rabbitmq import MessageQueueTHRESHOLD_VALUE = 230 # 二值化时的阈值PRETREATMENT_FILE = 'hq' # 横切时临时保存的文件夹W = 540 # 最小宽度H = 960 #

2020-08-20 09:21:01 3532 2

原创 django 基于 channels 实现实时聊天和后台主动推送

源码地址:https://download.csdn.net/download/qq_37049050/114533950.环境python>3.6django==2.21.安装包pip install redispip install -U channelspip install channels_redis2.创建项目3.socket_chann...

2019-07-30 13:44:51 4240 8

原创 python futures 练习

闲来无事,看看python futures 多线程这块,确实方便 牛皮from concurrent.futures import ThreadPoolExecutorimport requestsimport randomimport pytesseractfrom PIL import Imageurl = ["http://www.epicc.com.cn/wap/Cre

2018-04-28 16:23:52 298

原创 python requests 请求 https SSL 报错

连接国企vpn时的一次掉坑经历跟领导俩人搞了一下午,头都快炸了,不过找到了解决办法。首先是https请求,通过代理访问,但一直报错,就像这样:(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_record', 'wrong version number')],)",),))查了好多博客和国外网站,最终在一个犄角...

2017-08-03 20:15:33 23536 9

原创 基于Django 实现 WebSocket 中转功能

有时间补,先去开会。

2023-11-07 14:18:27 208

转载 Django集成CAS

CAS概述CAS 全称集中式认证服务(Central Authentication Service),是实现单点登录(SSO)的一种手段。对于本文用户可感知的层面,认证过程如下:前端访问后端登录接口 后端返回重定向到 CAS 服务器的登录页面,并携带当前用户访问的网页链接 用户登录,浏览器发送请求到 CAS 服务器进行认证 CAS 认证通过,将本次登录保存到会话,返回回调地址给后端 后端返回重定向请求给前端 前端重定向到跳转登录前的页面 中间涉及到的 TGT 处理逻辑已经由开源 CA

2022-04-01 10:31:53 773

原创 docker 构建mysql

2022-01-25 13:16:19 1531

原创 将django的详细报错信息通过webhook发送

import traceback, sysdef handler(exc, context): response = exception_handler(exc, context) if not response and not settings.DEBUG: error_info = traceback.format_exception(*sys.exc_info()) send_feishu.delay(''.join(error_info), '.

2021-10-09 17:06:08 334

转载 Gunicorn 配置

TL;DR,对于受 CPU 限制的应用程序,增加工作人员和/或内核。对于 I/O 有界应用程序,请使用“伪线程”。Gunicorn是一个 Python WSGI HTTP 服务器,它通常位于反向代理(例如,Nginx)或负载均衡器(例如,AWS ELB)和 Web 应用程序(例如 Django 或 Flask)之间。Gunicorn 架构Gunicorn 实现了一个 UNIX 预分叉网络服务器。太好了,什么意思?Gunicorn 启动一个单独的主进程,它被.

2021-09-13 11:44:30 1340

原创 ant vue 笔记

<template> <div class="login"> <a-form :form="form" :label-col="{ span: 5 }" :wrapper-col="{ span: 12 }" @submit="handleSubmit"> <a-form-item label="name"> <!-- 直接写检验规则 --> <a-input v-decorat.

2021-09-08 17:51:57 222

原创 Python如何简介高效的判断一个数在什么区间范围内?

from bisect import bisect_lefta = [0, 3, 7, 29, 30]print(bisect_left(a, 44))

2021-09-01 18:14:10 3420

原创 python 循环删除列表中元素

a = [1, 2, 3]for i in a[:]: a.remove(i)print(a)

2021-09-01 17:46:07 392

原创 django中 celery 如何优雅重启

因为项目中有延时任务,如果使用kill -9 直接KILL进程,会导致现有任务无法在下次启动时被加载,这里使用官方推荐的信号机制,这时celery的主线程会将待完成的任务记录在 broker中(博主用的是redis,而且没有改任何配置),这时会生成一个叫 celery的key,里面记录了未完成的任务,在celery下次启动时会去重新加载这些任务。优雅的重启celery:import osf = '/var/run/celery/celery.pid'if os.path.exists(f):

2021-09-01 10:45:56 1791 1

转载 django搬运工

在任何类型的ORM中,聚合(aggregation)都是造成混乱的根源,而Django也是如此。该文档提供了各种示例,演示了如何使用Django的ORM对数据进行分组(group)和聚合(aggregation),但是我决定从另一个角度进行研究。在本文中,我将QuerySet和SQL并排放置。如果您最喜欢SQL语言,那么这是适合您的Django GROUP BY速查表。如何在Django中分组为了演示不同的GROUP BY查询,我将使用Django内置django.contrib.auth应

2021-08-30 17:04:06 53

原创 python 处理有orientation的图片

# The EXIF tag that holds orientation data.EXIF_ORIENTATION_TAG = 274# Obviously the only ones to process are 3, 6 and 8.# All are documented here for thoroughness.ORIENTATIONS = { 1: ("Normal", 0), 2: ("Mirrored left-to-right", 0), 3: (".

2021-08-16 18:37:21 708 3

原创 django 拼接多个 queryset 并按顺序排列

问:a = aa.objects.filter(shifttype=upemptype,attdate=upattdate,tagtime__gte=20).values('attdate','shifttype','tagtime').annotate(attsum=Sum('atten'),postsum=Sum('post')).order_by('attdate','shifttype','tagtime')b= aa.objects.filter(shifttype=upemptyp

2021-07-30 19:16:33 1109 1

原创 谷歌浏览器输入栏中的下载按钮是个什么鬼

本文的标题是为了给那些跟我一样,不知道该怎么搜索关键字的同学准备的;无头苍蝇般的在网上找了好久,终于知道了它的学名PWA,OK有学名就知道该怎么搞,附上Vue项目的配置https://www.jianshu.com/p/7845a13a67d7加油吧...

2021-06-18 11:20:18 577 2

原创 python 小程序支付代码

class Pay(): def __init__(self): # =======【基本信息设置】===================================== self.appid = APPID self.mchid = MCHID self.notify_url = NOTIFY_URL self.serial_no = SERIAL_NO def get_head(self, metho.

2021-06-09 11:14:51 351 1

原创 python使用rabbitmq worker异常处理

在使用rabbitmq时,如果服务端重启或者异常,worker就会抛出异常而导致挂掉,这里写了一个简单的重试机制def auto_restart(max_retry=None, sleep_time=5): def wrapper(func): def _inner(*args, **kwargs): retry = 0 condition = retry < max_retry if max_retry else True

2021-05-19 12:10:59 301

原创 gitlab CI CD

CI/CD 部署gitlab runnerUbuntu安装 runnercurl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash export GITLAB_RUNNER_DISABLE_SKEL=true; sudo -E apt-get install gitlab-runner Centos 安装 runner..

2021-03-26 20:14:59 222

转载 docker占用磁盘太大 怎么办

问题 docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 解决方法 2.1 找出Docker容器日志 在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面,查看各个日志文件大小的脚本docker_log_size.sh,内容如下: #!/bin/sh echo "======== docker containers..

2021-03-17 14:16:39 2306

原创 基于docker搭建elasticsearch环境及配置ik分词

1、docker版本本文中使用的docker版本是[root@1 ~]# docker -vDocker version 20.10.1, build 831ebea2、下载es镜像docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.23、启动容器docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-..

2021-01-22 11:31:27 337

原创 Django 日志随笔

1、记录每个接口sql执行时间编写自定义中间件,可以将输出结果保存进日志,方便后续统计操作class SQLMiddleware(MiddlewareMixin): def process_response(self, request, response): for sql in connection.queries: print(sql) # {'sql': 'SET SESSION TRANSACTION ISOLATI

2020-12-31 10:05:26 105

原创 搭建Sentry异常捕获平台

简介Sentry是一个实时事件的日志聚合平台,可以实时检测程序异常错误并发出报警通知,帮助开发人员快速定位问题。如果处理快速,在用户反馈前就可以将问题修复,缩小了影响范围,避免同样的错误影响更多用户。环境搭建sentry 依赖的东西比较多,有 postgres、redis、memcached、celery、exim4 ,建议使用 docker 安装和管理。安装 docker参考 https://www.runoob.com/docker/centos-docker-install.html .

2020-08-17 17:30:54 1768

转载 python 多进程 logging:ConcurrentLogHandler 配置

python的logging模块RotatingFileHandler仅仅是线程安全的,如果多进程多线程使用,推荐 ConcurrentLogHandler. 安装之:# Using ConcurrentLogHandler:# wget https://pypi.python.org/packages/fd/e5/0dc4f256bcc6484d454006b02f33263b20f762a433741b29d53875e0d763/ConcurrentLogHandler-0.9.1.tar.

2020-06-15 10:55:43 1560

转载 mysql 日期操作

--今天select * from 表名 where to_days(时间字段名) = to_days(now());--昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1--本周SELECT * FROM 表名 WHERE YEARWEEK( date_format( 时间字段名,'%...

2020-05-08 11:13:56 177

转载 如何0元搭建一个共享收费Wifi?

share.jpg家里的宽带平时就是下班或周末用用,闲着也是闲着,就想能有偿分享出来补贴一点宽带费用,家靠路边,楼下有底商,人流量还可以,应该可以收点费用上来。网上搜索一番,多数都是购买特定的收费路由器产品,费用大概500元左右,这个对于我这种试一试的用户成本太高。后来无意搜索到一家叫“尔雅云”的可以提供软件的方式把二手路由器变为收费wifi,正好手里有路由器就试了一把,感觉不错,把经验分...

2020-03-30 19:27:14 9378 3

转载 Python __subclasses__() 函数获取类的所有子类

class A(object): passclass B(A): passclass C(A): passfor sc in A.__subclasses__(): print(sc.__name__)BC

2019-12-30 11:43:04 4066

原创 python3 在图片上添加文字

import cv2from PIL import ImageFont, ImageDraw, Imageimport numpy as npbk_img = cv2.imread("share.png")# 设置需要显示的字体fontpath = "/Users/ps/projects/hymm/egret/trade/simsun.ttc"font = ImageFont.tr...

2019-12-13 11:15:53 1204

转载 python操作阿里云oss

对象存储 对象存储的概念我就不做太多概述了,详情可以参考阿里云 sdk python的sdk不仅提供对文件的处理,包括其它内容比如图片也有很好的支持,可以实现对图片在线缩放、水印等一系列操作,详情可参考官方图片处理文档 文件处理代码# -*- coding: utf-8 -*import oss2import osaccess_key_id = os.getenv('OSS...

2019-10-22 11:16:20 1257

转载 nginx反向代理配置去除前缀

使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法:方法一:加"/"server { listen 8000; server_name abc.com; access_log "pipe:...

2019-10-21 17:46:15 258

原创 身份证前6位对应的省市区县

{ "110000": "北京市", "110100": "北京市市辖区", "110101": "北京市东城区", "110102": "北京市西城区", "110103": "北京市崇文区", "110104": "北京市宣武区", "110105": "北京市朝阳区", "110106": "北京市丰台区", "110107": "北京市石景山区", "110108":...

2019-10-18 17:12:21 4958

原创 出现频率最高的元素

def most_frequent(list): return max(set(list), key = list.count) list = [1,2,1,2,3,2,1,4,2] most_frequent(list)

2019-10-18 15:12:47 336

原创 python 获取某个模块中的所有类

铁棒磨针第一天import inspect# 找出模块里所有的类名def get_classes(arg): classes = [] clsmembers = inspect.getmembers(arg, inspect.isclass) for (name, _) in clsmembers: classes.append(name) ...

2019-09-27 10:22:56 8149 2

转载 一个简单有效的 Git 工作流

一个简单有效的 Git 工作流Git 使用规范几个必要的分支分支管理模式开发阶段测试阶段上线阶段Commit描述Git 使用规范为了更好的多人协作开发,提高开发、测试的效率,总结出以下简单实用的 git 工作流程。几个必要的分支master 为可发布分支,受保护,仅可以merge,不能push,对应生产环境部署的代码;dev 为开发分支,最初是从 master 分支创建的,用于开发人员日...

2019-09-16 15:51:24 190

原创 django+nginx+gunicorn 出现 414 request-uri too large

1、nginx nginx.conf 文件的修改client_header_buffer_size 512k;large_client_header_buffers 4 512k;具体的大小根据自己的uri长度调整即可。2、gunicorn 配置我这里用的是配置文件,在文件中添加下面的参数来设置请求头大小limit_request_field_size=30000...

2019-08-12 11:21:44 772

原创 python 对身份证的一些操作

根据身份证号获取生日、生肖、星座、性别。 def user_info(id_card): # 根据身份证号获取一些基本信息 year = id_card[6:10] month = id_card[10:12] day = id_card[12:14] sex = '男' if int(id_card[-...

2019-07-25 15:38:28 2258

转载 django celery 实现任务队列和定时任务

一、前言  Celery是一个基于python开发的分布式任务队列,如果不了解请阅读笔者上一篇博文Celery入门与进阶,而做python WEB开发最为流行的框架莫属Django,但是Django的请求处理过程都是同步的无法实现异步任务,若要实现异步任务处理需要通过其他方式(前端的一般解决方案是ajax操作),而后台Celery就是不错的选择。倘若一个用户在执行某些操作需要等待很久才返回,这...

2019-07-18 10:21:51 1784 1

原创 记一次抓取app

mitmproxy + appium主要解决的问题是登录后获取登录状态并保存。appium 的安装和配置环境很繁琐,但按照教程一步一步来 还是可以搭建好,这里就不多说:参考https://www.jianshu.com/p/7df814557c96安装成功后,开始安装mitmproxy 参考 :https://www.jianshu.com/p/0eb46f21fee9博主...

2019-06-26 18:22:34 137

原创 es 实践 爬坑 笔记

{ "query": { "bool": { "must": [ { "range": { "passtime": { "gt": "1490976000000", ...

2019-06-06 17:35:29 175

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除