![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python+Django
文章平均质量分 52
记录python相关的文章
骑鱼的少年
君子藏器于身,待时而动
展开
-
【pycharm】 Virtualenv创建venv报错
在启动django项目时,需要创建venv环境,有时候能顺利创建成功,当python版本换成3.8时,会报错。原创 2024-07-05 14:56:12 · 265 阅读 · 0 评论 -
【python3.8 pre-commit报错】记录pre-commit install报错
在执行命令时,报错。原创 2024-02-01 14:21:34 · 498 阅读 · 0 评论 -
【python开发踩坑】dict.fromkeys的坑
给mysql赋值,也会改变host的值。原创 2023-11-25 17:52:22 · 137 阅读 · 0 评论 -
【python开发踩坑】时间相减存在的逻辑漏洞
在一个Django项目中,有两个celery周期任务,都是每隔两分钟轮询一次。这两个任务,本质上是两个异步线程,而且都会操作数据库报告实例表的某条记录。一般情况下,通过判断超时时间,两个线程是不会同时操作同一条报告实例数据的,但是在客户的生产环境,出现了极端情况,同一条数据被两个线程同时修改了。线程线程。原创 2023-07-04 10:16:58 · 159 阅读 · 0 评论 -
lambda函数与字典结合,减少if条件判断
在巡检和基线场景中,要把巡检回来的值,和标准值进行对比,对比方式有很多,比如大于、小于、正则等,未来还要继续扩展。原创 2023-06-27 17:39:46 · 190 阅读 · 0 评论 -
Ansible源码学习(一)
基于Ansible源码学习。原创 2023-06-17 14:01:49 · 360 阅读 · 0 评论 -
分布式队列celery学习
说明:本文内容来自《python自动化运维快速入门》学习Celery是由纯Python编写的,但协议可以用任何语言实现。目前,已有Ruby实现的RCelery、Node.js实现的node-celery及一个PHP客户端,语言互通也可以通过using webhooks实现。任务队列: 简单来说,任务队列就是存放着任务的队列,客户端将要执行任务的消息放入任务队列中,执行节点worker进程持续监视队列,如果有新的任务,就取出来执行该任务。这种机制就像生产者、消费者模型一样,客户端作为生产者,执行节点worke原创 2022-12-04 20:07:43 · 594 阅读 · 1 评论 -
celery4时区配置问题
现象:使用celery4时,出现数据库时间比中国时间少七个小时问题,出现有的周期任务不执行问题(比如每天10点执行的周期任务不响应)原创 2022-12-02 18:38:07 · 1614 阅读 · 1 评论 -
CentOS下Python3创建虚拟环境
此时的python默认已经是python3的版本了!CentOS下Python3如何创建虚拟环境。CentOS下Python3如何创建虚拟环境。CentOS下Python3如何创建虚拟环境。转载 2022-10-11 10:38:56 · 448 阅读 · 0 评论 -
进入docker环境调试django代码
有时候,由于各种限制,出包麻烦,但又需要频繁更改代码测试验证,而且又只能在真实的环境进行测试验证。此时如果能够进入docker环境,直接写代码调试,可以快速得到结果。原创 2022-10-10 19:59:18 · 390 阅读 · 0 评论 -
Django pycharm控制台日志模块报错和日志配置
在windows环境下,当日志文件大小超过配置设定的大小时,有时候会报错:文件另一个程序正在使用此文件,进程无法访问。原创 2022-10-09 14:32:23 · 1471 阅读 · 0 评论 -
celery apply_async定时任务重复执行问题
清晨起来,客户生产环境突然出现诡异的现象,定时早上7点执行一次的任务,在七点执行了七八次,非常诡异。而且经过排查,发现没有报错信息,最后是查看日志时,发现celery重发了很多同一时间的定时任务。原创 2022-09-02 15:31:28 · 1483 阅读 · 0 评论 -
Python开发问题笔记
一、背景在开发过程中,往往会遇到很多bug,但有一些bug比较特别,容易重复出现,所以在此记录一下,防止重复踩坑。本帖子会持续更新,持续记录开发过程中遇到的问题二、问题详情1. if 判断相关原始代码:bk_cloud_id = ip_data.get("bk_cloud_id") if ip_data.get("bk_cloud_id") else \ ip_data["hostList"][0]["bk_cloud_id"]以上代码的本意是:当原创 2022-05-11 10:33:34 · 154 阅读 · 0 评论 -
Django-合并migrations
一、背景在开发一个迭代时,产生了很多migrations文件,而且这些migrations文件都是一个model表改来改去产生的,有必要将这个迭代的migrations文件在提测前合并成一个migrations文件。二、操作方法方法一:需要对已经初始化的库表做还原删除直接将本次迭代所产生的migrations文件删除执行命令python manage.py makemigrations生成一个新的migrations文件去数据库中,找到django_migrations表,删除步骤2对应的记录原创 2022-03-22 14:48:22 · 1778 阅读 · 1 评论 -
【性能优化】Django ORM使用Q查询时注意事项
一、背景介绍有两个查询条件差不多的函数,查询条件都是通过Q拼接而来,但是两者的查询时间差别很大。一个耗时1.044s(DEBUG (1.044))一个耗时0.040s(DEBUG (0.040))二、分析代码如下(脱密代码段)条件1: # 拼接查询条件 filter_list = Q(id=1) for key, time in demo_list: filter_list = filter_list | Q(xxx_key=key, xxx_time=ti原创 2022-01-24 12:07:47 · 1350 阅读 · 0 评论 -
【性能优化】减少操作数据,提高性能
一、背景在自测的时候,发现有个函数统计的数据很少,但是耗时比同类型复杂函数更多。然后用Django调试models输出的SQL语句,发现该函数在统计数据时,用了很多count()操作,产生了很多sql查询操作。二、分析考虑到代码安全,以下代码都是经过脱敏处理的。不过不影响我们的性能分析效果。优化前代码片段:def get_obj_static_data(bk_object_key, username="admin"): # 对象下,有权限的,并且已经巡检的实例 start = d原创 2022-01-21 12:01:22 · 889 阅读 · 0 评论 -
【性能优化】Django prefetch_related优化记录
一、现象描述1.表结构class Instance(BaseModel): check_object = models.ForeignKey(CheckObject, on_delete=models.CASCADE, db_constraint=False) xxxclass InstanceAttr(BaseModel): instance = models.ForeignKey(Instance, on_delete=models.CASCADE, db_constra原创 2022-01-11 16:20:02 · 559 阅读 · 0 评论 -
【性能优化】Django性能优化笔记
# 一、背景在研发过程中,随着数据量暴增,数据查询性能问题变的越来越突出,需要想办法优化查询响应速度。所以本篇文章,就是记录曾经做过的性能优化过程。二、优化场景记录场景一:优化交互逻辑,提高用户体验问题描述:客户通过多选下拉框的模块,查询主机。但是加载下拉框需要2分钟左右,主机展示table也很卡。原因是客户的模块有几千个,主机数据有几万条。而且这些数据都不是本地数据,都是需要调用开放性接口,分页去查询。原因分析:前端调用一个函数查询模块数据,实际后端这个函数的逻辑是循环分页调用第三方接原创 2022-01-09 22:51:48 · 1389 阅读 · 0 评论 -
drf-豁免特定请求的csrf验证
一、背景需求:最近在做前端微服务嵌入的时候,涉及到csrf验证问题。但是作为被引用的项目,因为安全问题,是不能将csrf完全放开的。只能针对特定的请求,豁免csrf验证。项目栈:Django 2.2.6djangorestframework 3.11.1vue二、实现1.前端部分前端要做的是,在header中加入一个自定义的参数,作为识别标志vue项目中用的是axios请求,详情入如下:axios.interceptors.request.use((config) =>原创 2021-09-24 17:39:48 · 458 阅读 · 0 评论 -
django多表合并查询并能分页
一、背景当前需求: 做一个小功能,要查询用户的所有订阅的信息,包括所订阅的应用和资源,而且要能分页查。数据库设计: 但是用户订阅数据是放在两张表中,应用订阅表和资源订阅表。单表可以分页查询,但多表分页查询之前是在java中,使用sql语句用过。在django中还没试过。解决方案:通过sql查询创建一个视图使用union方法对比了三个方案,union方案最简单,而且符合django项目设计,所以就选了union方法来实现这个小需求。之所以不选择方案一,是因为我们的项目中,基本不使用原生s原创 2021-09-11 12:01:30 · 1571 阅读 · 0 评论 -
django2 批量拼接查询条件
一、背景在做django项目性能优化时发现,orm查询数据库时,所需时间是很大的。如果在for循环里不停地查询数据库,性能消耗更是可怕,函数会变得更慢。但是,本次性能优化时,遇到一个特殊的情况,就是查询数据时,三个字段联合才能进行查询。这个时候,就不能直接三个字段都使用in,这样会出现错误。二、方案循环拼接查询条件,代码如下:health_inst_dict = dict(health_inst_polling.values_list("instance__bk_instance_key"原创 2021-08-05 17:34:39 · 600 阅读 · 0 评论 -
html页面生成图片-纯后端生成图片:pyecharts+snapshot-phantomjs
一、 html页面生成图片的技术背景将html页面生成图片,目前经过本人验证的,有两种方式:1、纯前端通过html2canvas生成图片,2、将前端的dom传回Django后端,通过wkhtmltoimage生成图片但是以上两种方式,都有一个前提,就是需要用户先打开页面(即页面必须先在前端渲染完成),然后要么是通过setimeout自动延迟生成图片,要么是用户通过点击按钮,触发生成图片的请求。二、发送图片邮件的需求需求:在后端,做一个定时任务,定时发送日报周报邮件,邮件的正文是图片。图片原创 2021-01-22 11:22:42 · 3079 阅读 · 0 评论