![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
二两hackpython
HackPython漫画教学,乐趣为伴,快乐编程
展开
-
Python定时任务框架:APScheduler源码剖析(二)
前言在上一篇文章中,简单的捋了一遍使用BackgroundScheduler调度器做定时任务的流程,本篇接着上一篇文章,分析一下_real_add_job方法和_main_loop方法。虽然APScheduler有多种不同的调度器以及多种不同的使用方式,但其核心都是类似的,一通百通。对了,文中分析的APScheduler是当前最新版3.6.1。剖析_real_add_job回顾一下上篇文...原创 2019-12-18 14:37:05 · 409 阅读 · 0 评论 -
Python定时任务框架:APScheduler源码剖析(一)
前言APScheduler是Python中知名的定时任务框架,可以很方面的满足定时执行或周期性执行程序任务等需求,类似于Linux上的crontab,但比crontab要更加强大,该框架不仅可以添加、删除定时任务,还提供多种持久化任务的功能。APScheduler弱分布式的框架,因为每个任务对象都存储在当前节点中,只能通过人肉的形式实现分布式,如利用Redis来做。第一次接触APSchedu...原创 2019-12-17 15:15:24 · 573 阅读 · 0 评论 -
MySQL插入优化与requests连接池
最近工作比较忙,此外花了时间看杂书,文章写的比较少。本篇文章分享一个工作中遇到的小问题。背景要完成一个开发任务,读取一个具有80w条数据的CSV文件,将其入库,因为CSV文件中缺少2个关键数据,需要通过调用内部Web API接口的形式去获得,2个参数分别请求两个URL,每次请求参数不同。MySQL插入优化先不考虑Web API方面的内容,80w条数据,如何快速的入库MySQL?一个直观...原创 2019-12-13 16:58:52 · 223 阅读 · 0 评论 -
Flask源码剖析(六):响应是怎么实现的
前言接着此前Flask源码剖析系列,这次来看看Flask是怎么样生成响应的。基本使用Flask会将视图函数返回的值作为Response返回给客户端,这一步对Flask框架使用者而言是透明的,最基本的用法如下:@app.route('/')def hello(): return 'Hello, 二两!', 200, {'Content-Type': 'application/jso...原创 2019-12-09 13:42:21 · 151 阅读 · 0 评论 -
微信Hook实战记录2:动手实现恶意dll内存插入器
Hook任何软件,整体思路都是通过内存调试软件对软件运行时内存进行断点调试,找到想要hook的内存地址,转为可以通过程序主dll可以获得的相对地址,然后再此处插入自己的恶意汇编代码,如果代码比较复杂,还需要编写寄存器保护逻辑,避免自己的恶意代码修改了寄存器中的值后,程序正常的逻辑无法运行。前言在上一篇文章「微信Hook实战记录 1:找到个人信息」中,介绍了如何使用OD与CE来找到微信中存放个人...原创 2019-12-08 23:39:31 · 944 阅读 · 0 评论 -
Flask源码剖析(二):路由原理
前言在上一篇中,从最简单使用形式入手,简单的过了一遍Flask应用启动流程以及其背后的原理,本篇将会以类似的风格剖析Flask路由相关的内容,同样不会涉及过多细节,力求从较高的维度去看。Flask版本:1.0.2endpoint端点回归一下上一篇文章,在通过@app.route()装饰器将函数转为Flask视图函数时,多次提及了endpoint,对应的add_url_rule()代码如下。...原创 2019-11-30 12:28:18 · 187 阅读 · 0 评论 -
Flask源码剖析(一):Flask启动流程
前言Flask是Python著名的web框架,其特点是轻量简单易扩展。Flask源码量挺多的,本文从比较高的维度整体看一下Flask关键结构的实现原理,文中不会细究太多细节,不多废话,开搞。考虑篇幅长度,分多篇文章来讨论,本文系列文章以Flask 1.0.2 为基准。前置背景知识Flask依赖于werkzeug与jinja这两个核心库,werkzeug是HTTP与WSGI相关的工具集,而...原创 2019-11-30 12:27:22 · 317 阅读 · 0 评论 -
装饰器在大型项目中几个有趣的用法
前言众所周知,Python是一门动态语言,变量不需要声明类型,这种灵活的形式让多人进行大型Python开发时会面临类型不明确的问题,项目中类和方法很多了,方法的参数就会让人迷惑,如果开发者自身编码风格又比较随意,那么项目就会变得难以维护。受公司项目启发,这里分享关于装饰器的几点思考。“全局”静态方法静态方法很简单,使用@staticmethod装饰器则可,简单例子如下:class MyC...原创 2019-11-30 12:24:26 · 180 阅读 · 0 评论 -
自由职业之路-从每小时5美元的Upwork工作到百万美元跨境咨询业务
title: 自由职业之路-从每小时5美元的Upwork工作到百万美元跨境咨询业务tags: 随笔原文:https://www.sinostep.com/from-5USD-hourly-job-on-upwork-to-million-dollar-cross-border-consulting-business/简介从2011年以来,我一直在Upwork上从事工作,一开始,我的入...原创 2019-08-29 23:21:00 · 6800 阅读 · 1 评论 -
Python进阶:百万「并发」基础之异步编程(下篇)
HackPython致力于有趣有价值的编程教学简介在上一节中,了解了yield、yield from等概念,此时Python以及具有编写协程实现「回调」的能力,而「回调」是异步编程的基础,随后Python语言的开发者利用yield from能力,在Python3.4中引入了异步I/O框架asyncio,该框架在Python3.5中被完善并作为标准库之一,用于基于协程的异步I/O编程,本节就...原创 2019-07-20 22:27:04 · 116 阅读 · 0 评论