
Python
Litt1eQ
Life is short, you need python.
展开
-
Python装饰器详解
装饰器作为Python当中非常经典和实用的feature,在项目当中应用是非常广泛的,比如说记录运行时间,缓存,鉴权管理,等等都会使用到装饰器。我在学习装饰器的过程中,其实并不算非常的顺利,其中也遇到了不少的坑,不过当学完装饰器之后,使用起来,那别提有多爽了,在本文当中我将讲述一下我学习装饰器的历程,希望对大家有所启发,如有理解的不对或者不到位的地方,也欢迎各位读者斧正。基础知识函数作为Python当中的一等公民(first-class citizen),函数也是对象,可以吧函数复制与变量,代码如下:原创 2020-12-07 07:07:23 · 382 阅读 · 1 评论 -
你真的了解Python的列表和元组吗?
对于Python来说,列表可谓是用到的非常多的数据结构之一了,但是Python还有另外一个数据结构叫做元组,直观表现来说,元组就像是不可变的列表,那么问题来了,元组和列表的区别是什么呢?什么时候应该用元组,什么时候应该用列表呢?我在刚开始学习Python的过程当中一直有这种困惑,本文是我总结的一些关于Python列表和元组的相关知识,下面来一起看一下吧。基础知识总的来说,列表和元组实际上都是一个可以放置任意数据类型的有序数组, 相比于其他语言,比如说C或者Java等等,他们数组中的元素类型必须保持一致.原创 2020-12-04 07:10:47 · 253 阅读 · 0 评论 -
你真的了解Python的单例模式吗?
你真的了解Python的单例模式吗?最近在用Python单例模式的时候遇到一些问题, 还是自己太年轻了, 在这里总结一下我在使用这个设计模式的时候的坑.前言(单例模式简介)单例模式提供了这样一个机制,即确保类有且只有一个特定类型的对象,并提供全局访问点。因此,单例模式通常用于下列情形,例如日志记录或数据库操作、打印机后台处理程序,以及其他程序——该程序运行过程中只能生成一个实例,以避免对同...原创 2020-05-06 21:40:37 · 567 阅读 · 0 评论 -
从零教你学会用Python爬虫
因为某个朋友问我爬虫要怎样去学, 因此, 我便打算给他写一篇文章来教ta去从零开始学会爬虫.基础知识在这里简单的介绍一下学习爬虫所需要的基础知识, 这里仅简单介绍入门的基本知识, 由于篇幅有限, 这里仅做简单的解释, 如果想深入学习, 大家可以利用搜索引擎, 自己去学习.什么是爬虫?网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定...原创 2020-03-17 18:58:39 · 372 阅读 · 0 评论 -
谁在用Python弹奏一曲东风破 - 第二期 - 蜂鸣器版
之前借助Python利用虚拟钢琴软件弹奏了一曲东风破, 虽然是成功了, 但是终究还是要下载一个虚拟钢琴, 那么我想, 我能不能直接用电脑的蜂鸣器来弹奏一曲东风破呢? 感谢 @刘之帅 提供的创意.不过做这个之前, 需要先普及一点乐理知识, 否则后面的代码会看不懂, 乐理这个东西, 我也是一个初学者, 可能有我理解的不对的地方, 也请各位看官指出.预备知识说到音乐, 那肯定离不开声音的三...原创 2020-03-12 09:39:43 · 3308 阅读 · 2 评论 -
是谁用Python弹奏一曲东风破
是谁在用Python弹奏一曲东风破最近闲暇之余, 逛B站, 发现那些大神们用计算器, 用各种东西, 弹曲子, 那是弹得一个好, 作为一个手残人士, 虽然也想尝试一下, 但是吧, 我发现, 我的脑子里面想的挺好的, 可是手它, 它不听使唤啊, 一张图表达我的心情.本着不扰民的原则(内心害怕被打), 然后决定放弃了, 但是作为程序员的我, 虽然我的手, 可能不听使唤, 但是代码, 总是听使唤...原创 2020-03-10 21:10:08 · 20379 阅读 · 78 评论 -
Python实现字体混淆
最近发现某网站页面显示是正常的, 但是审查元素的时候, 却发现都是乱码, 觉得挺有意思的, 然后研究了一下, 网站实际上采用了字体混淆.背景介绍字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的。实际上在计算机显示的字体, 都是由他们的编码决定的, 因此如果我们修改字...原创 2020-02-15 07:43:48 · 1029 阅读 · 0 评论 -
如何高调使用Python函数式编程
如何高调使用Python函数式编程首先我们考虑一个初学编程一般会了解的问题,计算n的阶乘,一个学过编程的程序猿可以简单的写出如下代码:def fact(n): return n == 0 and 1 or n * fact(n - 1)ret = fact(5)# ret = 120这次我们的主角函数式编程,可以写出如下代码:fact = (lambda hig...原创 2018-06-05 18:45:26 · 304 阅读 · 0 评论 -
Django自定义软删除Model
Django 自定义软删除Model起源:一些数据不会真的去删除,而是给数据标记一个flag,表示它被删除了,然后感觉每次都写一个这样的字段超级麻烦,并且有时候给筛选的时候一不小心的疏漏可能导致被删除的实例重新回到列表中。。。# [编码中还是总充满这小惊喜的哈],因此打算实现一个可以软删除的Model,这样每次需要软删除就方便多了。测试环境:Django2.0 Python3.6...原创 2018-04-07 09:49:20 · 2140 阅读 · 0 评论 -
Python 源码编译安装
Python 源码编译安装体验Python3.7 打算直接利用源码编译安装,发现安装过程中的一些坑,在这里记录一下。 小注: 以下均在MAC-OS测试通过首先当然是要先下载源码了,Python源码官网即可下载,不在这里啰嗦了。下载之后解压 tar -zxvf Python-3.7.0b3利用解压软件解压的可以忽略这一条命令哈。然后开始正式进行安装过程了...原创 2018-04-05 09:19:57 · 2613 阅读 · 0 评论 -
Python3.5与Python3.6Json模块不同
最近写的一个项目,本地在运行过程中没有出现任何问题,然后欢天喜地的放到了服务器上。。。。。。 结果是我得到了惊喜的500,查看日志发现Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framewor...原创 2018-04-03 19:49:39 · 1003 阅读 · 0 评论 -
推荐一个解析HTML的Python库--Requests-HTML
推荐一个解析HTML的Python库–Requests-HTMLHTML Parsing for Humans, 这句话是库作者(kennethreitz)原话, 提现出了这个库的人性化, 话不多说, 来看几个例子吧. 作者以Python官网做的例子, 在这里我用优快云吧, 嘻嘻. 首先获取首页:>>> from requests_html import se...原创 2018-02-25 23:24:52 · 19632 阅读 · 6 评论 -
Python实现代理池
问题起源: 最近在研究Python爬虫, 爬虫自然少不了代理, 因此自己动手整理了一个代理池, 用的Free的代理, 因此用了多线程加快了爬取速度, 在这里大体记录一下.技术栈: Python、Django、Celery大体思路: 找到免费的代理网站,然后获取一些Free的代理地址,然后验证有效性,保存到数据库,暂时还没有分布式爬虫的需求,因此对于代理数量需求不大,因此本项目对于大...原创 2018-02-24 11:04:28 · 1278 阅读 · 0 评论 -
二叉树的遍历
二叉树的遍历在这里总结一下树的遍历方式,留作以后自己在学习使用,如有问题欢迎大家留言指正。 深度优先遍历:中序遍历(Inorder):遍历次序(Left->Root->Right) 4 2 5 1 3 算法描述: Inorder(tree) Inorder(left-subtree) // 遍历左子树 visit(root) // 打印根原创 2017-11-25 13:16:44 · 302 阅读 · 0 评论 -
Docker django 部署
Docker django 部署最近研究了一下如何用docker 打包django后台程序,记录一下踩到的坑,留给自己以后查看,如有错误欢迎各位大神指正。 这里记录一下最简单的,只是打包一个django后台,不涉及restful api 和数据库的连接。 用到的包: django、docker、gunicorn、nginx 这里我们使用gunicorn来运行django的项目。 目录原创 2018-01-13 11:37:44 · 1024 阅读 · 0 评论 -
Fabric 自动部署
Fabric 自动部署部署大多都是一些重复的工作,故在这里记录一下学习fabric的过程,借鉴了网上的大神和文档,留作纪念。环境配置sudo pip install fabric # sudo 取决于OS主要参考:官方文档本机操作from fabric.api import local, lcddef test_local(): with lcd("./filename"):原创 2017-12-28 19:32:13 · 843 阅读 · 0 评论 -
Pipenv 管理Python package
Pipenv 管理Python Package原来一直使用 virtualenv virtualenvwrapper pip 管理Python 相关package,突然发现大神写的pipenv, 在这里记录一下使用过程,留作以后的纪念吧,如有问题欢迎各位大佬们批评指正。安装我们直接使用pip 安装[sudo] pip install pipenv # sudo 取决于OS使用教程cd my_proj原创 2017-12-29 18:20:32 · 563 阅读 · 0 评论 -
Python 源码阅读之准备工作
Python源码阅读之准备工作闲来无事, 想深入学习一下Python的实现机制, 因此阅读源码成为了我的不二选择, 在这里借鉴了”Python 源码剖析”一书, 也当做是这本书的读书笔记。 Python源码剖析 by 陈儒 ISBN: 9787121068744此文是记录基本环境配置的过程,在这里我阅读的源码是Python 2.7.14,在跟随书中编译的过程中遇到了一些问题,在这...原创 2018-02-28 11:12:16 · 587 阅读 · 0 评论 -
前后端实现加密传输(RSA)
前后端实现加密传输(RSA)由于前端使用HTTP协议, 因此产生了对于数据加密的需求, 由于JS和Python中RSA秘钥产生方式的差异,踩了不少坑, 在这里记录一下. 技术栈: JS、Python、Django、JSEncrypt 详细记录:# 密钥格式(公钥)-----BEGIN PUBLIC KEY-----# 密钥内容-----END PUBLIC KEY-----...原创 2018-02-28 11:40:24 · 14194 阅读 · 3 评论 -
Python展开列表
最近看30-seconds-of-python-code, 发现一个展开列表的例子, 想了很久, 在这里记录一下心得(PS: 代码均在Python3.6上测试)。 首先我想到的是递归列表推导,然后代码写出来是这样子的def flatten(arr): if isinstance(arr, list): return [a for i in arr for a in...原创 2018-02-28 18:51:10 · 2301 阅读 · 0 评论 -
PEP8翻译
最近闲来无事,重新看了一遍Python PEP8规范,在这里自己翻译一下.介绍本文档给出了Python的编码约定,其中主要包含了Python发行中的标准库。请参阅在Python的C实现种为C代码描述的标准配套信息PEP。 本文档和PEP257(Docsting公约)改编自Guido最初的Python风格指南,并增加了一些Barry风格。 代码风格并不是一成不变的,随着时间的推移,过去的...翻译 2018-02-21 06:06:11 · 1099 阅读 · 0 评论 -
Python爬虫之UserAgent
问题: 在Python爬虫的过程中经常要模拟UserAgent, 因此自动生成UserAgent十分有用, 最近看到一个Python库(fake-useragent),可以随机生成各种UserAgent, 在这里记录一下, 留给自己爬虫使用。安装 pip install fake-useragent使用案例基本使用from fake_useragent import UserAge...原创 2018-02-22 19:09:19 · 14155 阅读 · 0 评论 -
DRF-ModelViewSet 根据条件选择序列化
DRF-ModelViewSet 根据条件选择序列化再用django写后台时候,restframework省去了很多事情,在这里记录一下如何根据不同的请求来获取不同的序列化,留给自己以后使用。查看DRF ModelViewSet的源码,在GenericAPIView中写了获取序列化的方法。class GenericAPIView(views.APIView): # ... def g原创 2017-11-24 19:05:16 · 2867 阅读 · 0 评论