Python
文章平均质量分 77
Mr丶D
这个作者很懒,什么都没留下…
展开
-
Python3和Python2中不同点总结——
写在前面Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,...原创 2018-03-16 11:01:12 · 219 阅读 · 0 评论 -
Django Model中的字段类型、参数、Meta选项详解
model field 类型AutoField 一个自增的IntegerField一般不直接使用,Django会自动给每张表添加一个自增的primary key。BigIntegerField64位整数,-9223372036854775808 到 9223372036854775807。默认的显示widget 是 TextInput.BinaryField ( Django 1...原创 2018-10-11 13:53:05 · 3282 阅读 · 0 评论 -
Selenium与chromedriver安转与操作指南
概述通常我们用的是 Selenium+chromedriver获取动态数据:Selenium相当于是一个机器人。可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如点击,填充数据,删除cookie等。chromedriver是一个驱动Chrome浏览器的驱动程序,使用他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。以下列出了不同浏览器及其对应的driver:...原创 2019-03-21 14:57:34 · 988 阅读 · 1 评论 -
爬虫与反爬虫
基本概念爬虫 - 自动获取网站数据的程序,关键是批量的获取反爬虫 - 使用技术手段防止爬虫程序的方法误伤 - 反爬技术将普通用户识别为爬虫,如果误伤过高,效果再好也不能用成本 - 反爬虫需要的人力和机器成本拦截 - 成功拦截爬虫,一般拦截率越高,误伤率越高反爬虫的目的初级爬虫 - 简单粗暴,不管服务器的压力,容易弄挂网站数据保护 -失控的爬虫 - 由于某些情况下,忘记或者无...原创 2019-05-27 11:02:09 · 211 阅读 · 0 评论 -
一篇文章彻底掌握HTTP协议
在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以:HTML是一种用来定义网页的文本,会HTML,就可以编写网页;HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。http协议分析浏览器请求我们在地址栏输入 www.baidu.com 时,浏览器将显示新浪的首页。...原创 2019-06-01 10:58:57 · 400 阅读 · 0 评论 -
一篇文章完全掌握TCP协议
上一篇讲解了http协议,本篇中主要讲解TCP协议TCP介绍TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信需要经过创建连接、数据传送、终止连接三个步骤。TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活...原创 2019-06-01 17:31:04 · 1068 阅读 · 0 评论 -
Python列表类型性能测试以及内置字典操作的时间复杂度分析
timeit模块timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)Timer是测量小段代码执行速度的类。stmt参数是要测试的代码语句(statment);setup参数是运行代码时需要的设置;timer参数是一个定时器函数,...原创 2019-06-01 11:41:59 · 1314 阅读 · 1 评论 -
一文完全掌握Python property属性以及实战中应用
初识property属性说道属性,我们马上想到实例属性、类属性等那么回顾一下类属性clsas Provice(object): country = 'china' def xxx(self): pass如上代码中 country就是类属性,我们可以通过以下方式去设置值和获取值beijing = Probice()# 调用实力方法beijing.xxx()# 获取类属性m...原创 2019-06-01 11:42:11 · 259 阅读 · 0 评论 -
Celery (1)- 安装配置及使用
简介Celery是一个简单的/灵活且可靠的,处理大量消息的分布式系统专注于实时处理的异步任务队列同时也支持任务调度架构图组件介绍Producer : 任务生产者. 调用 Celery API , 函数或者装饰器, 而产生任务并交给任务队列处理的都是任务生产者。Broker : 消息代理, 队列本身. 也称为消息中间件. 接受任务生产者发送过来的任务消息, 存进队列再按序分发给...原创 2019-06-14 11:32:25 · 1231 阅读 · 1 评论 -
Celery (2)- Django中配置使用celery
安装pip install django-celery构建建项目Django项目django-admin startproject celery_demo先运行一下django项目python manage.py runserver直接运行项目报错和解决报错:django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 ...原创 2019-06-15 12:08:17 · 512 阅读 · 0 评论 -
Django-celery使用过程中错误以及解决方法汇总
报错1 - TypeError:can only concatenate list (not ‘tuple’) to list参考:https://stackoverflow.com/questions/49085230/django-celery-typeerror-can-only-concatenate-tuple-not-nonetype-to-tuplehttp://docs....原创 2019-06-14 17:49:14 · 9863 阅读 · 2 评论 -
PEP8 - Python编码规范完整中文版
变量常量:大写加下划线 USER_CONSTANT私有变量 : 小写和一个前导下划线 _private_valuePython 中不存在私有变量一说,若是遇到需要保护的变量,使用小写和一个前导下划线。但这只是程序员之间的一个约定,用于警告说明这是一个私有变量,外部类不要去访问它。但实际上,外部类还是可以访问到这个变量。内置变量 : 小写,两个前导下划线和两个后置下划线 class两个前...转载 2019-06-03 17:52:17 · 9717 阅读 · 0 评论 -
Celery (3)监控工具flower的使用
安装 pip install flower启动:celery flower --address=0.0.0.0 --port=555 --broker=xxx --basic_auth=user:passwordcelery flower --address=0.0.0.0 --port=555 --broker=redis://127.0.0.1:6379如果我们在django...原创 2019-07-03 15:38:58 · 2948 阅读 · 2 评论 -
Celery (4)使用supervisor进程管理工具
supervisor介绍supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。安装pip ins...原创 2019-07-05 18:29:58 · 838 阅读 · 0 评论 -
django.db.utils.OperationalError: (1193, "Unknown system variable 'storage_engine'")
django连接数据库时,配置"OPTIONS":{"init_command":"SET storage_engine=INNODB;"}如果mysql数据库的版本是5.6,这句话会抛出如下异常django.db.utils.OperationalError: (1193, "Unknown system variable 'storage_engine'")解决办法"OPTION...转载 2018-10-11 17:17:18 · 284 阅读 · 0 评论 -
一篇文章彻底搞明白GIL
在双核cpu的ubuntu系统下执行代码单线程执行死循环while True: pass执行上面代码,单线程死循环已经占满了一个cpu核然后上面代码再次运行一份。 相当于同时运行2个 线程死循环 程序,我们看到俩个核全部被占满多线程执行死循环import threading# 子线程死循环def test(): while True: pass t1 = th...原创 2019-05-25 14:05:22 · 493 阅读 · 0 评论 -
python单元测试用例设计
前言在刚学习编程的时候总是忘记处理一些特例(尤其是动态语言可以传各种值),为了养成良好的编程和测试习惯,在编写单元测试用例的时候, 我们注意考虑下如下测试用例(等价类划分):正常值功能测试边界值(比如最大最小,最左最右值)异常值(比如 None,空值,非法值)实战操作def binary_search(array, target): if not array: ...原创 2019-05-24 14:37:18 · 1348 阅读 · 0 评论 -
Python中字符串的常见操作总结
find检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1mystr.find(str, start=0, end=len(mystr))index跟find()方法一样,只不过如果str不在 mystr中会报一个异常.mystr.index(str, start=0, end=len(mystr)) count返回 str在s...原创 2018-03-16 11:33:59 · 247 阅读 · 0 评论 -
计算机丢失api-ms-win-crt-process-l1-1-0.dll 和 丢失api-ms-win-crt-conio-l1-1-0.dll问题的解决
问题出现最近在安装Python后,在命令行输入Python提示无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll.丢失api-ms-win-crt-process-l1-1-0.dll问题的解决首先下载api-ms-win-crt-process-l1-1-0.dll文件,大家可以这里去下载:api-ms-win-crt-proces...原创 2018-05-31 14:50:27 · 47879 阅读 · 16 评论 -
使用pip install mysqlclient命令安装mysqlclient失败?
写在前面我们使用Django、flask等来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。 常见的Mysql驱动介绍:MySQL-python:也就是MySQLdb。是对C语言操作MySQL数据库的一个简单封装。遵...原创 2018-08-09 11:26:39 · 100480 阅读 · 36 评论 -
使用pip安装pymqsql,出现Cannot unpack file xxx的问题的解决以及pip安装速度慢或出现readtime out问题的解决。
写在前面最近作者在windows下使用pip安装pymysql的时候,出现Cannot unpack file xxx的问题。 问题出现的过程我初步估计问题的主要原因是我在安装时,由于使用pip安装的时候,起初直接只用如下命令:pip install pymysql但是这样直接安装出现的问题是安转速度慢,甚至会出现readtime out问题,于是我使用了清华大学的源。 h...原创 2018-08-06 10:06:58 · 34089 阅读 · 44 评论 -
ValueError: astimezone() cannot be applied to a naive datetime -- navie时间和aware时间之间转换
什么是navie时间?什么是aware时间?navie时间:不知道自己的时间表示的是哪个时区的。也就是不知道自己几斤几两。比较幼稚。aware时间:知道自己的时间表示的是哪个时区的。也就是比较清醒。pytz库:专门用来处理时区的库。这个库会经常更新一些时区的数据,不需要我们担心。并且这个库在安装Django的时候会默认的安装。如果没有安装,那么可以通过pip install ...原创 2018-08-11 16:05:07 · 2758 阅读 · 0 评论 -
Django 开发:django-debug-toolbar使用详解
简介Django Debug Toolbar是Django开发中必备利器,可以帮助开发者快速了解项目的整体信息以及每个页面包括sql信息,http相关信息。本篇将详细讲解如何django-debug-toolbar的使用。项目集成Django Debug Toolba我们去Django Debug Toolba官网,跟随官方文档一起学习 Django Debug Toolba官方文档...原创 2018-09-15 17:26:29 · 8208 阅读 · 2 评论 -
RESTful设计
关于REST的URI设计1、URI中不应该包含动词因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。举例来说,某个URI是/posts/show/1,其中show是动词,这个URI就设计错了,正确的写法应该是/posts/1,然后用GET方法表示show。如果某些动作是HTTP动词表示不了的,你就应该把动作做成一种资源。比如网上汇款,从账户1向账户...原创 2018-10-12 11:31:24 · 879 阅读 · 0 评论 -
Django REST framewrok使用:__str__ returned non-string (type NoneType)错误
错误在使用Django REST framewrok序列化的时候,访问接口,出现下面的错误:出错原因因为我自己写了User模型,替换了django自带的User,通过继承AbstractUser来完成,并重写了__str__方法,返回了自己的name,并且设置这个name的null==True, 所以导致的这个错误。如图:解决方式:在自己定义的User模型中__str__方法中返回A...原创 2018-10-13 10:32:16 · 1051 阅读 · 0 评论 -
token那些事儿
一、token的介绍 接口特点汇总:1、因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效;2、因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程;3、有点接口需要用户登录才能访问;4、有点接口不需要...原创 2018-10-09 09:31:15 · 1701 阅读 · 0 评论 -
Scrapy框架介绍与安装过程中出现 error: Microsoft Visual C++ 14.0 is required问题的解决
Scrapy框架介绍:写一个爬虫,需要做很多的事情。比如:发送网络请求、数据解析、数据存储、反反爬虫机制(更换ip代理、设置请求头等)、异步请求等。这些工作如果每次都要自己从零开始写的话,比较浪费时间。因此Scrapy把一些基础的东西封装好了,在他上面写爬虫可以变的更加的高效(爬取效率和开发效率)。因此真正在公司里,一些上了量的爬虫,都是使用Scrapy框架来解决。Scrapy框架模块功能:...原创 2019-04-03 10:31:29 · 278 阅读 · 0 评论 -
Python虚拟环境详解
为什么需要虚拟环境:到目前位置,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.10.x写了个网站,然后领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰...原创 2019-04-21 07:46:15 · 228 阅读 · 0 评论 -
Scrapy-Redis创建分布式爬虫
Scrapy-Redis分布式爬虫组件Scrapy是一个框架,他本身是不支持分布式的。如果我们想要做分布式的爬虫,就需要借助一个组件叫做Scrapy-Redis,这个组件正是利用了Redis可以分布式的功能,集成到Scrapy框架中,使得爬虫可以进行分布式。可以充分的利用资源(多个ip、更多带宽、同步爬取)来提高爬虫的爬行效率。分布式爬虫的优点可以充分利用多台机器的带宽。可以充分利用多台...原创 2019-05-10 10:58:40 · 1629 阅读 · 1 评论 -
jupyter notebook出现LookupError:unknow encoding:65001的解决
报错提示信息最近由于更换电脑,重新安装环境 。在使用jupyter notebook出现如下报错:终端错误信息图:浏览器现实断开图:解决在终端中输入如下命令即可:set PYTHONIOENCODING=utf-8...原创 2019-05-10 16:29:15 · 856 阅读 · 0 评论 -
CentOS 7安装Python3 以及python3.7中ModuleNotFoundError: No module named '_ctypes错误解决
CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。使用 python -V 命令查看一下是否安装Python然后使用命令 which python 查看一下Python可执行文件的位置python 指向的是python2.7安装1. 因为我们要安装python3版本,所以python要指向python3才行,目前还没有...原创 2019-06-11 07:56:35 · 8603 阅读 · 0 评论