自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Seagull的专栏

分享一些来自工作中的所思所得

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

原创 如何通过爬虫来获取豆瓣上top250的电影信息

运行环境:Macbook pro MacOS Mojave 10.14.5编译器:科赛(https://www.kesci.com)爬虫技术需要的技能:python/BeautifulSoup/HTML/Pandas好的,话不多说,我们开始学习如何使用爬虫来获取豆瓣上top250的电影信息。一. 获取网页信息import requestsfrom bs4 import Be...

2019-07-21 22:37:52 1589

原创 odoo中如何在tree视图上实现M2M字段的跳转

我们都知道,odoo里面天然支持了对于Many2one类型的跳转的支持,但是如何实现M2M类型的跳转呢,这个原生目前是不支持的,所以需要我们自己改造一下。

2022-10-21 16:42:11 466 1

原创 【架构设计】如何实现3ms内从1000w级别的用户里面随机抽奖出100名用户

关于大批量用户里面挑选部分用户的架构以及方案设计

2022-10-01 22:38:11 968

原创 【MySQL】大数据表里面插入字段的操作

如何在海量的数据里面,高效的新增一个字段呢,相信看完本文章,会对你有所启发。

2022-09-23 11:27:41 3412

原创 【leetcode】接雨水问题的解法(python版)

咋一看这种问题,可能是没有什么思路的,认真思考之后,可以这样理解:这个问题,是要求找到左侧和右侧的两个柱子,然后盛的水最多即可,因为是需要同时算出左右两边同时“包”进来的水最多,这个地方我们很自然的就会想到双指针法,同时定义两个指针,然后同时往中间走,算出最大值即可。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。总结:解决该问题,最重要的是要理解怎么能够获取到最大的雨水量,以及如何巧妙的引入双指针即可。输入:[1,8,6,2,5,4,8,3,7]返回容器可以储存的最大水量。...

2022-08-08 12:18:04 546

原创 python 里面对于字典进行key或value排序输出

但是后面,财务经理提出要在部门leader和财务之间添加一个业务负责人来进行再次确认,如果说想在已经算好的字典里面直接加的话,会直接把这个节点放到最后面去,所以这个时候需要我们用一些技巧。最近在工作中碰到一种情况是,需要在字典里面指针的位置插入一个值,但是因为字典是无序的,所以如果说想直接在某个key后面插入值是比较难实现的,那么如何实现呢?Step1在节点里面加入一个优先级为3300的节点,但是由于没有配置人员,会被自动过滤到。我们在做审批流的时候,有一个优先级的字段,根据优先级来确定审批流,...

2022-08-01 12:00:06 1558

原创 使用Redis搭建消息队列(python版)

最近在工作中遇到了一个场景是这样的:每到月初我们需要向上个月考勤有异常的同学的企业微信推送异常考勤提醒,让有异常的同学及时处理:补卡或者提交对应的请假申请等等。之前的做法是直接循环数据库,查处有异常的同学的考勤数据,然后推送给到相关的同学。一次推送的数据量在1500左右。这种方法存在的问题,因为是通过同步的定时任务的方式,会因为数据量太大导致定时任务执行超时,导致事务回滚,数据库中未创建对应消息的记录,所以导致消息无法确认。在发现这个问题之后,我们的第一反应是把定时任务做成异步的,修改的实现

2022-03-26 21:20:45 7436

原创 【算法】八皇后问题解法(c++版)

八皇后问题是回溯算法里面的经典问题,起源于1848年由国际西洋棋手马克斯,贝瑟尔提出,1850年法国著名的数学家高斯提出共有76种解法,实际上真的是这样吗,多年后我们通过计算机程序可以发现真正的解法比76种更多。问题描述:棋盘中皇后可以攻击同一行、同一列,或者左上、左下、右上、右上四个方向的任意单位。现在给你一个N*N的棋盘,让你防止N个皇后,使得他们不得相互攻击,返回所有合法的结果。今天我们来分析一下八皇后问题的解题思路。N皇后是使用回溯算法的典型问题,需要从第一行第一列开始,防止第一

2022-03-06 23:21:11 1949

原创 python 里面获取某个月每一天

这个地方提供两种方法:方法一、通过lambda匿名函数获取到月份的每一天,然后把数据进行组装即可。import timefun = lambda year, month: list(range(1, 1+time.localtime(time.mktime((year,month+1,1,0,0,0,0,0,0)) - 86400).tm_mday))fun(2013, 7)output:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

2021-11-21 17:21:58 1832 1

原创 odoo 使用web_notify 调出右上角的提示框

熟悉我的朋友,都知道 我会习惯先讲遇到的问题以及解决过程,最后再给出答案,这次也不例外。事情的背景是这样的,我们最近在做的公司的OA系统,需要在用户填入的数据比数据表中历史数据更高的时候,做出提示,最开始我使用的方式是: if amount > min_amount and remark: warning = { 'title': _("投放价格过高提醒"), 'message': '当前公众号相同条位有

2021-03-22 13:02:15 1045

原创 odoo 里面重写create方法容易踩的坑

相信大家在开发odoo的时候也经常需要重写create方法,那么问题来了,重写create方法的正确姿势是什么呢?最常见的代码,可能是这样的@api.modeldef create(self,vals): super().create(vals)但是,复杂一点的情况,我们可以需要在,create方法里面校验一些用户填入的信息是否是符合规范的,比如用户当前填入的明细信息是否是当前公众号的最低价,如果是的就把新的低价重写到表里面去,如果不是,就要进行提醒,如果是没有投放过的公众号,就要进

2021-03-21 12:25:06 1535

原创 odoo 里面attrs里面与uid的比较以及替代方案

最近在使用odoo14的时候,发现odoo的attr里面对于attrs={"invisible":[('state','=','draft'),('sponsor','=',uid)]} 这种写法并不支持,期初以为是自己语法有问题,后来反复查验之后发现不是语法的问题,而是odoo14默认在attrs属性里面不支持对于uid这种变量的解析,所以在执行编译的时候会报错。那么,如果我们想要实现这种在当前用uid进行比较实现隐藏的效果,应该如何处理呢?经过我反复试验和验证之后,发现之所以不能通过uid...

2021-03-21 11:59:40 1239 2

原创 odoo14 数据自动备份的解决办法

最近,我们公司在使用odoo14的时候,时常会遇到升级失败的问题,所以这就把另一个问题提上日程:odoo的数据自动备份功能。刚开始研究的时候,在网上找了一个模块,但是在安装的时候就报错了。于是,开始新一轮的寻找,终于在上周周末的时候,我找到了解决方法,在GitHub上找到了一个貌似可以的代码模块:https://github.com/Yenthe666/auto_backup安装好了之后,这个模块默认是看不见的,需要我们在auto_backup里面加上这样的话,就可以在apps ...

2021-03-09 12:56:52 915

原创 macbook pip安装失败的解决办法

最近在使用macbook的时候,发现一个很奇怪的问题,在使用pip 安装pysftp的时候,它会依赖于cryptography==3.3.2库,但是在安装cryptography的时候会报错,错误内容如下:于是,我想到先安装cryptography,然后再安装pysftp,能不能解决这个问题,但是比较郁闷的是使用pip installcryptography, 并没有直接解决问题,报错如下:此时,我想到了之前在MacBook 安装Pillow的时候,直接从pypi官网下载whl文件...

2021-03-08 22:03:24 1332 1

原创 odoo里面xml继承的使用

前言最近在公司的oa系统开发中,我们想要实现集团的财务流程审批,审批流对于odoo来说是强项,所以本来以为这个地方是很好做的,但是我们老大要求,做一个基础模型包含一些常用的字段,然后所有的业务流程都继承这个基础模型。如下图:模型B继承了模型A,使用原型继承的方式| | inherit | || A | -------

2021-03-04 22:44:35 767 1

原创 docker部署odoo外部应用遇到的问题分析

众所周知,odoo 早已支持使用docker来进行部署,而且用odoo部署起来也非常简单,根据官网的说明,只需要两步即可通过docker来启动odoo项目第一步:先生成pg的容器 docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres -p 15432:5432 --name db postgres:10第二部:运行odoo项目docker run -v /home/g

2021-02-19 21:33:00 371

原创 如何使用python来提高MySQL批量取数据的效率

最近我在处理业务的时候会发现有一个很明显的需求,就是当我们从其他系统导入数据的时候如何高效的批量获取数据,写入到自己的数据库? 最开始的时候,这个问题我并没有细想,具体来说的话就是: 当我想要获取订单信息的时候,同时我可能也需要获取商品和用户信息,但是这些信息可能并不是在一个表中,所以需要从订单表(假设这里是pay_order表)中去查询商品以及买家id,然后向用户id表去请求数据。针对于想要获取某一天的数据,这一块要怎么做呢?按照以往的经验,最开始我是这样设计的 def _...

2021-02-01 00:01:02 901

原创 如何使用gunicorn来启动Django项目

相信熟悉Django的小伙伴,一定都知道经典的python manage.py runserver 这个命令来启动,但是在实际项目中,我们一般不能或者不会使用这种方式来启动,那么要怎么处理呢?接下来,我们来介绍一种现在比较流行的方式:gunicorn方式来启动。首先,在我们的代码目录中新建一个虚拟环境:virtualenv -p /usr/local/pyenv/shims/python venv然后,进入虚拟环境中:source venv/bin/activatepip...

2021-01-20 11:24:00 1940

原创 python3 安装psutil安装报错的解决方案

环境:系统:Centos python:V3.6.8 一直遇到psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory,在网上搜了很久,都没找到解决方案,我尝试过用豆瓣(http://pypi.douban.com/simple) 以及清华的源,但是都不行。最后我在odoo的群里问,有位朋友回复说需要安装gcc,于是我先安装gcc yum -y ...

2021-01-05 15:32:04 4722 2

原创 docker 系列之——使用Link/Bridge实现容器间单/双向通信

之前我写了如何在docker里面部署mysql,部署完成之后,那么问题来了,我们如何实现在容器里面实现容器间的互相访问呢?在这里给大家介绍一个实现方法:通过Link来实现进程间的单向访问:Step 1:构建一个容器,在这里我命名为gaodbStep 2:构建一个容器Step 3:进入容器,测试是否可以ping通进入之后执行ping gaodb如果可以看到下面类似的消息,证明容器之间可以实现单向通信,配置成功!二、通过bridge 来实现容..

2020-10-27 22:41:11 609

原创 docker系列之——docker部署mysql服务

之间我有在博客里面介绍过如何在Debian/Ubuntu等系统安装docker,但是安装了以后我们要在上面开发的话需要部署对应的服务,那么Mysql作为当前企业用的最主流的线性数据库之一,几乎是必装的,那么如何在docker是部署Mysql服务呢?主要步骤有这样几步:首先第一步:获取mysql 的镜像文件docker pull mysql:5.7拉取完成之后,可以使用docker images 来查看mysql镜像状态第二部:在我们要操作的目录下面放入,我们要初始化的sql

2020-10-27 01:45:46 175

原创 python float 类型的陷阱

最近在做支付和退款的时候,发现一个因为python自带的float类型处理数据和预期结果不符,导致的错误。具体情况如下:退款金额4.10 decimal类型txn_amt = orderDict.get('txnAmt')if isinstance(txn_amt, decimal.Decimal): txn_amt = str(int(float(txn_amt) * 100))在我用float处理之后,数据变成了409,这是由于python的float类型的精确度会到小数点后14

2020-08-12 11:26:00 632

原创 formdata格式的数据如何处理?

最近在处理和招行的数据对接,遇到一个很棘手的问题:招行回调我们的数据接口,但是招行给的文档里面显示招行提供的数据格式是formdata格式的,格式如下:request_content=%7B%22merId%22%3A%22308999150570002%22%2C%22openId%22%3A%22o0xFV4wXFttZiHplNCvq9GGm8lrM%22%2C%22orderId%22%3A%2214233022%22%2C%22cmbOrderId%22%3A%220032190527201

2020-07-11 10:52:27 1111

转载 【转载】Linux系统下查找最近修改过的文件

Linux的终端上,没有windows的搜索那样好用的图形界面工具,但find命令确是很强大的。比如按名字查找一个文件,可以用 find / -name targetfilename 。 唉,如果只知道名字,不知道地点,这样也不失为一个野蛮有效的方法。按时间查找也有参数 -atime 访问时间 -ctime 改变状态的时间 -mtime修改的时间。但要注意,这里的时间是以24小时为单位的。查看man手册后使用,你会很迷惑: -mtime n: Files data was last modifi

2020-05-11 10:55:33 550

原创 数据结构与Python——堆(heap)

一、堆的特性堆分为最大堆(max heap)和最小堆(min-heap),一、堆的特性n里面堆的实现)三、heapq里面堆的函数heappush()heappop()heapify()heapreplace(heap,x)nlargest(n,heap)nsmallest(n,heap)三、heapq里面堆的函数...

2020-05-06 17:35:43 627

原创 【原创】docker实践之一些常见概念和操作(上)

-------前言之前我写过两篇文章,介绍过如何在Ubuntu和Debian下安装docker,安装之后如何快速上手呢,接下来我们来娓娓道来。一、docker里面的3个重要概念二、Docker的一些常见命令1.镜像(images)2.容器(Container)3.仓库(Repository)a)、Docker镜像简单理解,安装过系统的都知道 我们需要一个镜像文件来安装系统,镜像相当于...

2020-04-30 18:00:09 166

原创 【原创】如何优化网站的访问速度

相信做为一个web开发者,大家都有遇到过网站访问瓶颈的情况,那么如何通过一些技术手段来解决这个网站访问的性能问题呢? 首先,需要明确的一点是引发网站性能瓶颈的因素有哪些? 一、服务器 服务器方面又可以细分为硬件和系统架构的原因,比如当一个日常在2000 DAU的电商网站突然因为做促销活动网站的pv暴增的时候,肯定就要考虑扩容了,另一方面系统架构的原因,主要体现在我们选...

2020-04-27 10:57:33 205

原创 解决Debian里面ifconfig没有ens33的错误

今天在Debian虚拟机里面执行ifconfig突然发现只有docker和lo的信息,情急之下开始求助度娘,经过多方查找查资料找到了一个最简单的解决方案:使用ifconfig ens33 up来启动ens33。然后再执行ifconfig即可查看到结果。类似的,如果是查找不到eth0,执行 ifconfig eth0 up即可...

2020-03-27 19:40:15 943

原创 2020年技术目标

1.熟练掌握docker、MongoDB2.掌握一门新的语言(暂定Ruby)3.把数据分析师的课程视频看两遍,代码同步敲两遍4.熟练使用BS,Selenium等爬虫功能5.在CSDN发表文章50篇以上6.私下完成3~5个项目...

2020-03-24 11:35:36 135

原创 Debian下安装docker方法详解

一、安装之前的准备之前我在上一篇讲过Ubuntu下如何安装docker,但是Ubuntu在实际使用的过程中,不论是系统的流畅性还是稳定性方面感觉都不能达到我们的需求,后面在朋友的建议下,我吧Ubuntu换成了Debian,Debian到现在为止最新版本是10.0(Buster)。系统的镜像文件在网上也比较容易搜索到。虚拟机我选择的是virtualBox,下载好了Debian的镜像之后(这里我选...

2020-03-12 22:05:12 4447 1

原创 Ubuntu下安装docker方法详解

从19年开始,在华为的一次面试中第一次听到docker,后来因为找工作和入职开发任务繁忙没有太多的去研究这一块,直到最近我们公司的软件供应商交付的产品是用docker作为承载来开发,这一次必须来研究研究如何部署docker了。部署之前的准备准备好相应的软件测试一、部署之前的准备部署之前必须得说一句,我之前用的是window7系统32位,但是拿到官方文档一看才知道,用现在...

2020-03-10 01:30:28 669

转载 【转】python里面的“垃圾”是怎么回收的

大家都熟悉C和Java的垃圾回收机制,可以帮助机器很好的去释放内存空间,提升内存的使用效率。那么对于胶水语言Python来说,是怎么样做到垃圾回收的呢?前言:对于python来说,一切皆为对象,所有的变量赋值都遵循着对象引用机制。程序在运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量;计算完成后,再将结果输出到永久性存储器中。如果数据量过大,内存空间管理不善就很容易出现...

2020-02-27 20:59:00 147

原创 ReactJS moment库时间戳转换的bug解决方案

Steven最近在开发公司的活动管理系统的过程中遇到了一个问题: 时间在数据表里面存储的是时间戳的格式,使用React moment库来转换为“2019-12-29 10:00:00” 这种格式的时候的时候,会出现一个问题:直接使用moment函数会自动把我的时间戳截取掉最后三位导致转化出的时间出入很大。当然了我做事讲究有图有真相,看图说话:第一眼看到这个时间的感受,这不是那啥吗? ...

2019-12-30 21:13:55 3789 3

转载 jQuery - 解决DataTables重复初始化时报“Cannot reinitialise DataTable”错误

1,问题描述通常情况下页面上的表格只需初始化一次就可以了。但有时我们的代码可能对同一个表格多次进行初始化操作,那么这时浏览器就会弹出错误提示框,内容如下:2,问题原因Datatables 不允许多次初始化同一表格。虽然这个提示只是起告知作用,不会造成表格功能失效,或是其他 js 错误,但弹出个提示框总归不爽。3,解决版本只需在初始化的时候初始化时设置 retrieve...

2019-12-12 21:31:19 875

原创 如何用Sanic输出模板

Steven最近因为工作需要,在学习Sanic,上网搜索之后发现, 针对于Sanic的资料相对比较少,所以想要快速上手还是有一定的困难的。输出最简单的Hello world可以说是手到擒来from sani import Sanic,responseapp = Sanic()@app.route('/')async def rindex(request): #每一个函...

2019-11-25 18:23:20 1455

转载 【转】ubuntu下运行python和python3提示: no module named pip

1、Python2的环境提示no module named pip解决:apt-get install python-pip2、Python3的环境提示no module named pip解决:apt-get install python3-pip————————————————版权声明:本文为CSDN博主「康康的博客」的原创文章,遵循 CC 4.0 BY-SA ...

2019-11-22 13:26:58 910

原创 平安科技Python面试题分析

Steven最近在考虑换工作,突然接到了平安的面试邀请,也没怎么特别的准备就跑过去面试了,结果聊了一个小时之后被无情刷掉,不过还是想把这次的一些考点放在这里供大家以后参考。btw:面试我的竟然是个妹子,刚开始进来的时候我还以为先是HR面,结果人家一开始问技术问题,肃然起敬。先是问道:1.Python里面的数据类型有哪些?分析:其实这个问题并不难,除了基础的int/float/bool/...

2019-11-13 15:20:52 1087

原创 【原创】RabbitMQ 简单玩法之——生产者/消费者

大家都知道RabbitMQ是用来处理高并发,多个请求,通过生产者和消费者以及channel的技术来实现消息的高并发处理的技术。那么如何在代码里面里面实现呢?生产者/消费者模式1.首先我们要知道,RabbitMQ的实现模式,通过创建一个队列来存储生产者发送的消息,然后消费者通过既定的规则去队列里面去取,然后做相应的动作。一、设计生产者:在开始编写代码之前,我们要确认电脑上是否...

2019-10-24 00:50:11 692

原创 解决RabbitMQ admin账号登陆失败的问题

昨天刚在Mac上装好了RabbitMQ,也打开了默认的网址localhost:15672/ , 看了网上的教程说用admin账号登陆即可,密码也是admin,但是当我试着这样登陆的时候却一直提示登陆失败。后来查了网上的文档才发现,账号是要自己添加的.Step 1:切换到rabbitmq所在目录然后执行:./rabbitmqctl list_users查看所有的用户,发现...

2019-10-23 20:12:11 12527 1

原创 如何在Mac上安装RabbitMQ: 解决RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54的问题

大家都知道,RabbitMQ是现在用的比较多的消息中间件,可以用来分流客户端发过来的大量请求,Steven最近用开始重新的学习RabbitMQ了,但是第一步是要在我的Mac上装上RabbitMQ, 其实这个软件在Linux上可以很简单的安装,用apt-get 或者yum命令就可以了,但是Mac没有自带这些命令,所以需要我们手动安装。Part I、安装Brew第①次尝试:因为电脑上装了p...

2019-10-23 01:57:05 2611 1

空空如也

空空如也

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

TA关注的人

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