![](https://img-blog.csdnimg.cn/20190920134816357.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python
文章平均质量分 60
人生苦短 我用Python
Ch3nnn
这个作者很懒,什么都没留下…
展开
-
自用Pycharm必备插件系列 (持续更新)
AI 驱动的编码助手,具有超过 13 种语言的代码完成片段、高级函数签名和即时文档。类似于Sublime中的代码的微型地图嵌入到编辑器窗格中。使用您自定义的颜色对亮色和深色主题进行语法突出显示。在编辑器窗格中显示一个类似于Sublime的缩小概览或小地图。当您在 IDE 内的按钮上使用鼠标时,Key Promotion X 会显示您应该使用的键盘快捷键。状态显示、自动获取、内联责备注释、提交对话框完成、背后通知等等...更加直观的查看log日志,根据等级显示不同颜色。根据不同匹配选择不同颜色高亮。...原创 2021-07-19 13:15:43 · 9130 阅读 · 0 评论 -
python如何关闭线程
python关闭线程的方法:首先导入threading,定义一个方法;然后定义线程,target指向要执行的方法,启动它;最后停止线程,代码为【stop_thread(myThread)】。python关闭线程的方法:一、启动线程首先导入threading然后定义一个方法 然后定义线程,target指向要执行的方法 启动它 二、停止线程不多说了直接上代码 停止线程...原创 2022-07-08 18:11:08 · 15669 阅读 · 3 评论 -
使用drf-yasg中的swagger实现上传文件
# upload 上传文件参数manual_parameters = [ openapi.Parameter(name='file', in_=openapi.IN_FORM, type=openapi.TYPE_FILE, required=True, description='上传文件')]# 设备策略-策略.原创 2022-04-30 14:04:23 · 898 阅读 · 0 评论 -
个人博客 Django RSS 功能
RSS Feed Reader什么是 RSS?RSS 指 Really Simple Syndication(真正简易联合) RSS 使您有能力聚合(syndicate)网站的内容 RSS 定义了非常简单的方法来共享和查看标题和内容 RSS 文件可被自动更新 RSS 允许为不同的网站进行视图的个性化 RSS 使用 XML 编写为什么使用 RSS?RSS 被设计用来展示选定的数据。如果没有 RSS,用户就不得不每日都来您的网站检查新的内容。对许多用户来说这样太费时了。通过 RSS fe原创 2022-01-26 11:04:44 · 255 阅读 · 0 评论 -
pydantic数据验证库
pydantic文档https://pydantic-docs.helpmanual.io/使用 python 类型注释的数据验证和设置管理。pydantic在运行时强制执行类型提示,并在数据无效时提供用户友好的错误。定义数据应该如何在纯粹的、规范的 python 中;用pydantic验证它。例子from datetime import datetimefrom typing import List, Optionalfrom pydantic import BaseModel.原创 2022-01-21 11:04:39 · 914 阅读 · 0 评论 -
个人博客: ch3nnn.cn
https://ch3nnn.cn/原创 2020-12-18 11:48:04 · 464 阅读 · 0 评论 -
Python中 re模块 正则表达式 零宽度匹配
程序出错 re.error: look-behind requires fixed-width pattern 代码报出错误拿 "(?<!pattern)" 这个为例子(?<!pattern) 反向否定预查,与正向否定预查类似,只是方向相反。例如"(?<!95|98|NT|2000)Windows"能匹配"3.1Windows"中的"Windows",但不能匹配"2000Windows"中的"Windows"。 re.findall("(?<!95|98|N..原创 2021-12-27 15:17:47 · 1294 阅读 · 0 评论 -
实现 Python 动态配置管理 -- Dynaconf
Dynaconf 是一个Python的第三方模块,旨在成为在 Python 中管理配置的最佳选择。它可以从各种来源读取设置,包括环境变量、文件、服务器配置等。它适用于任何类型的 Python 程序,包括 Flask 和 Django 扩展。1.准备请选择以下任一种方式输入命令安装依赖:1. Windows 环境 打开 Cmd (开始-运行-CMD)。2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。3. 如果你用的是 VSCode编...原创 2021-12-10 09:35:18 · 1094 阅读 · 0 评论 -
Python_unix domain socket(域套接字)
业务上需要实现romd与superd通信,采用的通信协议是:unix domain socket简介Unix Domain Socket通常称为 【unix域套接口】 或 【本地套接口】,它用于位于同一台机器(操作系统)的进程间通信。它已经被纳入POSIX Operating Systems标准。它支持以下三种方式数据传输:可靠的字节流传输(SOCK_STREAM, 对应TCP);无序、不可靠的数据包传输(SOCK_DGRAM,对应UDP)。有序、可靠的数据包传输(SOCK_SEQPACK原创 2021-11-11 10:06:54 · 709 阅读 · 0 评论 -
Python 枚举类 自定义状态
枚举类不支持实例化;成员的值不能在类的外部做任何修改,每个成员都有name,value两个属性,其中name为该枚举值的名称,value为该枚举值的内容;定义枚举时,成员名称不允许重复,但在默认情况下,不同的成员值允许相同,两个相同值的成员,第二个成员的名称将会被视作第一个成员的别名,若要限制不能定义相同值的成员。可以使用装饰器@unique;枚举支持迭代器,可以遍历枚举成员;如果枚举有值重复的成员,循环遍历枚举时只获取值重复成员的第一个成员,若想把值重复的成员也遍历出来,要用枚举的一个特殊属性:_.原创 2021-09-23 11:00:01 · 679 阅读 · 0 评论 -
FastAPI 作为集大成者,它的灵感来自哪里?
人生苦短,我用 Python。 在看到 FastAPI 在首期「OSC 开源软件趋势榜」名列前茅,作为一个 Pythoner,顿时对它产生了浓厚的兴趣,于是立即开始了 FastAPI 体验之旅。何为 FastAPI ?FastAPI 是一种现代的、快速(高性能)的 Web 框架,用于构建 API 服务。它使用 Python 3.6+ 开发,用到了 Python 的新特性——标准的 Python 类型提示。说到快速(高性能),如果要用一个词来形容,个人觉得用“快如闪电”再合适不过,正如它的 l转载 2021-07-13 16:27:36 · 597 阅读 · 0 评论 -
nameko 的使用及注意事项
nameko 是python语言的一个微服务框架,支持通过 rabbitmq 消息队列传递的 rpc 调用,也支持 http 调用。本文主要介绍 nameko 的 rpc 调用以及一些注意事项。创建项目本文采用项目结构如下:project services service1 init.py service1.py service2 init.py service2.py utils init.py dependencie转载 2021-07-02 15:44:31 · 1922 阅读 · 0 评论 -
使用 filprofiler 分析器调试 Python 内存不足崩溃
运行你的 Python 程序,它崩溃了——它的内存不足。这只是您的程序在内存不足情况下可能失败的多种方式之一。你怎么知道是什么用完了你的程序的所有内存?一种方法是使用开源 Fil 内存分析器,它专门支持调试内存不足崩溃。让我们看看如何使用它。一个例子考虑以下 Python 程序:import numpy as npALLOCATIONS = []def add1(x): ALLOCATIONS.append(np.ones((1024 * 1024 * x...原创 2021-06-25 17:27:16 · 2262 阅读 · 0 评论 -
Flask开发技巧之参数校验 WTForms WTForms-JSON
Flask开发技巧之参数校验本人平时开发中使用的,或者学习到的一些flask开发技巧整理,需要已有较为扎实的flask基础。1、请求参数分类一般来说,前端发送过来的请求中,大致包含以下三种类型的参数,分别是url路径参数,url查询参数,还有目前前后端分离开发中最常见的json格式的数据。url路径参数/v1/user/1url路径参数即类似于上述例子中的参数,直接带在url路径中,可变化,flask针对这种参数,已经直接提供了支持,例:@app.route('/v1/user原创 2021-05-24 13:21:09 · 1841 阅读 · 0 评论 -
Pyppeteer (无头)chrome 网页链接html转pdf
文档:https://miyakogi.github.io/pyppeteer/index.htmlimport asynciofrom pyppeteer import launchasync def main(): browser = await launch(slowMo=20) page = await browser.newPage() await page.goto('https://ch3nnn.cn/') await page.pdf({ ...原创 2021-04-09 19:11:13 · 475 阅读 · 0 评论 -
Viewsets、Generic、Mimix解析
ViewsetsViewSets本质上只是一种基于类的视图,它不提供任何方法处理程序,比如“get()”、“post()”等等。相反,它有一些动作,比如“list()”、“retrieve()”(检索)、“create()”等等。动作只在实例化视图的时候绑定到方法。user_list = UserViewSet.as_view({'get': 'list'})user_detail = UserViewSet.as_view({'get': 'retrieve'})通常,您不会.原创 2021-04-07 18:09:06 · 335 阅读 · 0 评论 -
supervisor 进程管理工具 celery启动不了服务
supervisor 默认是使用root用户启动项目, 默认情况下,Celery不会以超级用户身份运行工人。解决方法: 手动指定项目用户启动 不是root用户以下是celery 官方配置; ================================; celery beat supervisor example; ================================[program:celerybeat]; Set full path to celery ..原创 2021-04-03 20:26:36 · 512 阅读 · 1 评论 -
Django 数据库迁移数据 dumpdata loaddata 命令
django dumpdataDjango dumpdata 是 django 自带的管理命令,可以用来备份你的模型实例和数据库## dumpdata # 整个 django 使用到的数据库转存到 db.json 文件中(备份整个数据库)python manage.py dumpdata > db.json# 将 admin app 转存到 admin.json 中(备份特定的 app)python manage.py dumpdata admin > admin.jso原创 2021-03-31 20:51:38 · 2962 阅读 · 0 评论 -
rest_framework_xml 解析xml成Python 字典格式数据对象
XML<UploadResult> <OriginalInfo> <Key>test.jpeg</Key> <Location>qr-code-1305143506.cos.ap-shanghai.myqcloud.com/test.jpeg</Location> <ETag>"930b8ceb82c9e7ed3dc61bdc0f8577065f7484a7"<.原创 2021-03-10 16:09:39 · 296 阅读 · 0 评论 -
Djangorestframework--自定义Serializer序列化字段 动态改变响应数据
遇到这么个场景,一个model模型,在某个场景访问id、name这三个字段,另一个场景访问name、age字段,那是不是需要创建两个Serializer ,如果更多需求,那会显得很笨拙,这时候如果Serializer的field字段在外部可以传进去,那岂不是很符合需求serializers.pyclass DynamicFieldsModelSerializer(serializers.ModelSerializer): """ 支持动态指定字段的序列化器,传参field...原创 2021-01-26 18:33:27 · 976 阅读 · 0 评论 -
Django gRPC 应用
官方文档:https://djangogrpcframework.readthedocs.io/en/latest/index.html项目设置创建一个名为的新Django项目quickstart,然后启动一个名为的新应用account:# Create a virtual environmentpython3 -m venv envsource env/bin/activate# Install Django and Django gRPC frameworkpip ins...原创 2021-01-22 19:00:14 · 1956 阅读 · 1 评论 -
Django Elasticsearch DSL
Django Elasticsearch DSL是一个软件包,允许在elasticsearch中索引Django模型。它是作为Elasticsearch-dsl-py的薄包装而构建的,因此您可以使用elasticsearch-dsl-py团队开发的所有功能。功能 基于elasticsearch-dsl-py,因此您可以使用Search类进行查询。 Django信号接收器处于保存和删除状态,以保持Elasticsearch同步。 用于创建,删除,重建和填充索引的管理命令。..原创 2021-01-15 10:24:06 · 1335 阅读 · 0 评论 -
gRPC详解
RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。RPC 框架的调用原理图如下所示:gRPC是什么?官方文档-PythongRPC是什么可以用官网的一句话来概括A high-performance, open-source universal RPC frame原创 2020-12-24 17:12:29 · 1500 阅读 · 1 评论 -
Python实现类似Java的反射
反射是通过字符串的形式操作对象的相关成员反射也就是通过字符串的形式,导入模块,通过字符串的形式去模块中寻找指定函数,并执行。Python中的反射功能有四个主要内置函数提供:1、hasattr(模块, '成员'):根据字符串的形式,去某个模块中检查是否含有某个成员 2、getattr(模块, '成员'):根据字符串的形式,去某个模块中获取成员 3、setattr(模块, '成员'):根据字符创的形式,去某个某个模块中设置成员 4、delattr(模块,'成员'):根据字符串的形式,去某个原创 2020-12-18 11:35:17 · 675 阅读 · 0 评论 -
DRF的APIView、GenericAPIView、GenericViewSet的原理分析
一、层次结构GenericViewSet(ViewSetMixin, generics.GenericAPIView) ---DRF GenericAPIView(views.APIView) ---DRF APIView(View) ---DRF View原创 2020-12-16 10:56:49 · 796 阅读 · 0 评论 -
Mac下载最新Pycharm替换旧Pycharm 启动不起来解决办法
1、先进入应用程序,显示包内容,终端运行pycharm,发现错误原因。2、发现是虚拟机配置文件,某个路径下的jetbrains-agent.jar文件不存在导致。cd /Applications/PyCharm.app/Contents/MacOS./pycharm解决:a、要么修改pycharm.vmoptions文件;重新指向jar文件所在的路径;b、要么把jetbrains-agent.jar文件拷贝到/Applications/PyCharm.app/Conte...原创 2020-12-03 11:59:44 · 493 阅读 · 0 评论 -
Python 基于open cv实现答题卡区域轮廓裁剪
答题卡模板扫描后图片:识别裁剪后图片:import cv2class CutImg: """ 识别答题卡答题区域工具类 资料: https://weread.qq.com/web/reader/30232de0719146363020e69kc81322c012c81e728d9d180 https://blog.csdn.net/qq_33897832/article/details/88931748 ...原创 2020-12-02 19:00:32 · 1659 阅读 · 0 评论 -
Serializers,ModelSerializers自定义字段的扩展操作SerializerMethodField 搜索 分页
view.pyclass LargeResultsSetPagination(PageNumberPagination): """自定义分页""" page_size = 25 page_size_query_param = 'page_size' max_page_size = 25# 测评-组卷工具-搜索题目class SearchQuestions(generics.ListAPIView): from rest_framework import.原创 2020-11-25 21:05:14 · 887 阅读 · 0 评论 -
Python ASGI 框架 快如闪电的异步服务器Uvicorn
什么是 Uvicorn ?Uvicorn 是一个闪电般快速的ASGI服务器,基于uvloop和httptools构建。直到最近,Python还没有为asyncio框架提供最小的低级服务器/应用程序接口。 ASGI规范填补了这一空白,意味着我们现在能够开始构建一个可用于所有asyncio框架的通用工具集。ASGI帮助实现一个Python Web框架生态系统,该框架在与IO绑定的上下文中实现高吞吐量方面与Node和Go竞争非常激烈。 它还提供对HTTP / 2和WebSockets的支持,WSGI无原创 2020-09-16 09:22:02 · 1945 阅读 · 0 评论 -
python中for循环的底层实现
在python中,存在2种循环方式:for循环和while循环。while循环的实现很简单, 其本质就是一个条件语句,自定义条件,当条件满足的时候,不断执行while代码块。但是for循环,究竟是怎么回事呢?说到for循环,那么就不能不讲到迭代了。python中迭代对象分2种:迭代器对象(Iterator)、可迭代对象(Iterable)。tips:如何判断一个对象是迭代器对象还是可迭代对象?from collections import Iterable, Iteratorisinstance原创 2020-08-15 16:41:58 · 858 阅读 · 0 评论 -
python3.7 Django2.x celery 踩坑
报错”from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger”,这是因为在python 3.7中将async作为了关键字,所以当 py 文件中出现类似from . import async, base这类不符合python语法的语句时,Python会报错;解决方法:在celery官方的提议下,建议将kombu下的async.py文件的文件名改成asynchronous;然后把...原创 2020-09-14 18:07:43 · 639 阅读 · 1 评论 -
django_orm查询性能优化
查询操作和性能优化1.基本操作增models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargsobj = models.Tb1(c1='xx', c2='oo')obj.save() 查models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议)models.Tb1.objects.all() # 获取全...原创 2020-08-28 01:40:54 · 826 阅读 · 0 评论 -
Python中的魔法函数总结整理
基本魔法方法 功能 __new__(cls[, ...]) 1.new是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给init方法 3.new决定是否要使用该init方法,因为new可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果new没有返回实例对象,则init不会被调用new主要是用于继承一个不可变的类型比如一个 tuple 或者 string __init__(self[, ....原创 2020-08-27 21:51:41 · 978 阅读 · 3 评论 -
Python GIL锁
什么是GIL锁GIL,是最流行在 Python 解释器 CPython 中的一个技术术语。它的意思是全局解释器锁,本质上是类似操作系统的 Mutex。每一个 Python 线程,在 CPython 解释器中执行时,都会先锁住自己的线程,阻止别的线程执行。CPython会轮流执行 Python 线程。这样一来,用户就会看到线程交替执行,似乎是并行,但是其实只有一个线程在运行。现在都是多核CPU,可以实现线程的并行运行,所以Python中并不是和使用多线程。GIL如何工作下面这张图,就是一个 G原创 2020-08-12 23:16:19 · 280 阅读 · 0 评论 -
(译)Python关键字yield的解释(stackoverflow)
译者: hit9 原文: http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained 译者注: 这是stackoverflow上一个很热的帖子,这里是投票最高的一个答案 Contents(译)Python关键字yield的解释(stackoverflow) 提问者的问题 回答部分 可迭代对象 生成器 yield关键字 回到你的代码 控制生成器的穷尽原创 2020-07-27 17:28:29 · 193 阅读 · 0 评论 -
Python字典dict实现原理
一. 什么是字典?字典是一系列由键(key)和值(value)配对组成的元素的集合。字典是一个可变容器模型,可以存储任意类型对象。字典实现与哈希算法密不可分(不同的Python版本,算法会不同),不了解哈希算法的童鞋可以先去了解相关知识。二. 字典是否是有序的?在Python3.6之前,字典是无序的,但是Python3.7+,字典是有序的。在3.6中,字典有序是一个implementation detail,在3.7才正式成为语言特性,因此3.6中无法确保100%有序。三. 字典的查询、添加原创 2020-07-24 17:24:26 · 4103 阅读 · 1 评论 -
Pandas中groupby的这些用法
文章来源:小数志作者:luanhz01 如何理解pandas中的groupby操作groupby是pandas中用于数据分析的一个重要功能,其功能与SQL中的分组操作类似,但功能却更为强大。理解groupby的原理可参考官网给出的解释:其中: split:按照某一原则(groupby字段)进行拆分,相同属性分为一组 apply:对拆分后的各组执行相应的转换操作 combine:输出汇总转换后的各组结果 02 分组(split...原创 2020-07-20 09:50:57 · 67557 阅读 · 1 评论 -
如何使用render_to_string时填充{%csrf_token%}
我需要使用render_to_string,但不能使用{%csrf_token%}并通过content = render_to_string('blog/comment.html', context=context)return JsonResponse({'content': content})解决方案我已经解决了这个问题,但是我仍然非常想要一个好的解决方案。面板功能现在看起来像:def render_to_s(request, *args, **kwargs):原创 2020-06-15 15:30:34 · 361 阅读 · 0 评论 -
pandas DataFrame Combine_first方法 数据类型改为将浮点数
正常查看df中公司名称为"xxxx股份有限公司"的股票代码 显示为 000729df3[df3.company=="xxxx股份有限公司"].secuCodeOut[2]: 2958 000729Name: secuCode, dtype: object但是通过 DataFrame Combine_first方法时, 发现数据类型发生变化, 而且数据格式也不是我想要的df4 = df1.combine_first(df2)df4[df4.company=="xxx有限公司"].原创 2020-05-29 18:47:46 · 1282 阅读 · 0 评论 -
博客优化-django静态页面处理
前言: 我看很多资料使用celery, 定时任务去执行首页静态化, 觉得博客基本都是自己修改内容, 首页基本不会经常发生变化.也不需要定时更新静态文件,所以就没有采用celery.以下是我想到的实现方法思路如下:1、根据文章 id,生成该文章的静态文件名称;2、静态文件名配上它存放的路径;3、判断此文章是否已静态化,如没有,则静态化 i)取文章数据、首页数据等其它数据; ii)将取出的数据渲染到模板中; iii)将生成的文章内容写到静态文件中去4、根据r...原创 2020-05-12 18:27:11 · 297 阅读 · 0 评论