自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小明同学的博客

专注于Python.web开发,涉猎前端部分框架!

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

原创 Python爬虫偷懒神器 —— 一键构造请求头

Python爬虫偷懒神器 —— 一键构造请求头在写爬虫,构建网络请求的时候,不可避免地要添加请求头( headers ),以 mdn 学习区为例,我们的请求头是这样的:一般来说,我们只要添加 user-agent 就能满足绝大部分需求了,Python 代码如下:import requestsheaders = {    &nb...

2019-11-28 16:30:07 283

原创 Python 数据库骚操作 -- MongoDB

MongoDB GUI 工具首先介绍一款 MongoDB 的 GUI 工具 Robo 3T,初学 MongoDB 用这个来查看数据真的很爽。可以即时看到数据的增删改查,不用操作命令行来查看。PyMongo(同步)可能大家都对 PyMongo 比较熟悉了,这里就简单介绍它的增删改查等操作。连接普通连接client = MongoClient(‘localhost’, 27017)cli...

2019-01-07 10:02:32 1133 3

原创 Gerapy 使用

Gerapy 使用Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们:更方便地控制爬虫运行更直观地查看爬虫状态更实时地查看爬取结果更简单地实现项目...

2019-12-26 16:54:00 547

原创 Python虚拟环境的安装和配置-virtualenv

Python虚拟环境的安装和配置-virtualenv一 虚拟环境 virtual environment它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。譬如,本次学习需要用到Django,我们可以做一个...

2019-12-26 09:53:00 2645 1

原创 docker-compose命令

docker-compose命令1.Docker Compose安装推荐使用pip安装docker-compose,因为速度快,pip可以为你自动对应版本问题!!!pip安装链接sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(...

2019-12-21 09:32:00 283

原创 管理node.js的nvm

我们坑同时在运行2个项目。而2个不同的项目所使用的node版本又不一样,或者是要用更新的node版本进行试验或学习。这种情况下,对于维护多个版本的node将会是一键非常麻烦的事情,而nvm就是为了解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间的切换,而这个正是nvm的价值所在。nvm全名node.js version management,顾名思义是一个nod...

2019-12-20 16:29:00 123

原创 Scrapy的中间件(一)

中间件是Scrapy里面的一个核心概念。使用中间件可以在爬虫的请求发起之前或者请求返回之后对数据进行定制化修改,从而开发出适应不同情况的爬虫。“中间件”这个中文名字和前面章节讲到的“中间人”只有一字之差。它们做的事情确实也非常相似。中间件和中间人都能在中途劫持数据,做一些修改再把数据传递出去。不同点在于,中间件是开发者主动加进去的组件,而中间人是被动的,一般是恶意地加进去的环节。中间件...

2019-12-20 10:54:00 159

原创 Scrapy的中间件(二)

爬虫中间件爬虫中间件的用法与下载器中间件非常相似,只是它们的作用对象不同。下载器中间件的作用对象是请求request和返回response;爬虫中间件的作用对象是爬虫,更具体地来说,就是写在spiders文件夹下面的各个文件。它们的关系,在Scrapy的数据流图上可以很好地区分开来,如下图所示。其中,4、5表示下载器中间件,6、7表示爬虫中间件。爬虫中间件会在以下几种情况被调用。...

2019-12-20 10:51:00 128

原创 requirements 操作

requirements作用描述:很多 Python 项目中经常会包含一个 requirements.txt 文件,里面内容是项目的依赖包及其对应版本号的信息列表,即项目依赖关系清单,其作用是用来重新构建项目所需要的运行环境依赖,比如你从 GitHub 上 clone 了一个 Python 项目,通常你会先找到 requirements.txt 文件,然后运行命令 pip ins...

2019-12-19 15:37:00 212

原创 Cron表达式

Cron表达式范例:*/5 * * * * ? :每隔5秒执行一次0 */1 * * * ? :每隔1分钟执行一次0 0 23 * * ? :每天23点执行一次0 0 1 * * ? :每天凌晨1点执行一次:0 0 1 1 * ? :每月1号凌晨1点执行一次0 0 23 L * ? : 每月最后一天23点执行一次0 0 1 ? * L :每周星期天凌晨1点实行一次0 2...

2019-12-19 11:46:00 2571

原创 文件操作

1、读取文件r读,r+读写 f=open("new.txt","r",encoding="utf-8") #一般文件使用f进行定义2、逐行读取与全部读取readline与readlines不同 1 f=open("new.txt","r",encoding="utf-8") #一般文件使用f进行定义 2 #print(f.read()) 3 #f.close() 4 ...

2019-12-18 11:14:00 80

原创 flask框架搭建项目的具体步骤

flask是一个使用python编写的轻量级Web应用框架。与django不同,Django创建工程时,会直接构架好工程目录。而flask工程几乎是自己创建结构。1.导入相关模块以及需要使用的模块:pip install flask :安装flask以及相关依赖pip install pymysqlpip install flask_sqlalchemy::用flask对象初始化...

2019-12-18 10:43:00 894

原创 docker 创建docker用户组,应用用户加入用户组

docker 创建docker用户组,应用用户加入用户组在Linux系统下使用docker,为了避免每次输入命令都需要sudo,可以把用户加入docker用户组创建docker用户组sudo groupadd docker普通用户加入docker用户组sudo usermod -aG docker ${用户名}重启dockersudo systemctl re...

2019-12-18 09:44:00 1855 2

原创 centos7+docker 安装和部署crawlab分布式爬虫平台,并使用docker-compose管理docker

1.先决条件centos7+docker最新版本 sudo yum updat2.配置一下镜像源,创建/etc/docker/daemon.conf文件,在其中输入如下内容{ "registry-mirrors": ["https://registry.docker-cn.com"]}3.启动docker命令:systemctl start docker 重启docker...

2019-12-12 12:05:00 1126

原创 ubuntu及Cenos国内镜像下载

打开:https://man.linuxde.net/download/CentOS 7提供了三种ISO镜像文件的下载:DVD ISO 标准安装版,一般下载这个就可以了(推荐)Everything ISO 对完整版安装盘的软件进行补充,集成所有软件。(包含centos7的一套完整的软件包,可以用来安装系统或者填充本地镜像)Minimal ISO 精简版,自带的软件最少以下针对各...

2019-12-09 13:09:00 112

原创 sqlalchemy报错:未知comment参数

报错:comment是未知参数当时查看了所有文件都没有问题,注释掉comment还是报相同的错,之后经过网上搜索问题,说是版本问题,在版本为1.1.9之前没有comment参数,再次1.2之后就有了才有了comment参数的发布,所有说升级1.2之后的版本就没问题了。升级版本pip install --upgrade flask-sqlalchemy(发现和flask-sqlalc...

2019-11-30 11:51:14 604

原创 django+nginx+uwsgi

连接django和uwsgi,实现简单的WEB服务器我们假设你的Django项目的地址是/home/ubuntu/mysite然后,进入项目目录下 cd /home/ubuntu/mysite,就可以执行以下命令:uwsgi –http :8000 –chdir /home/ubuntu/mysite –module django_wsgi这样,你就可以在浏览器中访问你的Djan...

2019-10-12 01:18:00 146

原创 RESTful API

要弄清楚什么是RESTful API,首先要知道REST是什么?REST,表示性状态转移(representation state transfer)。简单来说,就是用URI表示资源,用HTTP方法(GET, POST, PUT, DELETE)表征对这些资源的操作。Resource: 资源,即数据,存在互联网上的可被访问的实体Representation: 数据的某种表现形式,如...

2019-10-12 01:13:00 196

原创 drf常用方法

1.认证2.权限3.序列化4.分页5.限流

2019-10-12 01:10:00 253

原创 5中缓存

由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回。Django中提供了6种缓存方式:开发调试内存文件数据库Memcac...

2019-10-12 01:06:00 82

原创 Django中的信号

Django 提供一个“信号分发器”,允许解耦的应用在框架的其它地方发生操作时会被通知到。 简单来说,信号允许特定的sender通知一组receiver某些操作已经发生。 这在多处代码和同一事件有关联的情况下很有用。django中自定义了一些singals,用于监听一些操作,并发出通知。django中已经内置了一些singals,在django/db/models/signal.py...

2019-10-12 01:02:00 132

原创 csrf

CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。跨站请求伪造(CSRF)与跨站请求脚本正好相反。跨站请求脚本的问题在于,客户端信任服务器端发送的数据。跨站请求伪造的问题在于,服务器信任来自客户端的数据。无CSRF时存在的隐患跨站请求伪造是指攻击者通过HTTP请求江数据传送...

2019-10-12 00:59:00 64

原创 cookies和session区别

session原理:1、session是保存在服务器端,理论上是没有是没有限制,只要你的内存够大2、浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONID=ID的值,创建一个Cookie对象key为JSSIONID,value为ID的值,将这个Cookie写回浏览器3、浏览器在第二次访问服务器的时候携带Cookie信息JSESSIONID=ID的值,如...

2019-10-12 00:55:00 85

原创 DJango中间件

中间件就是介于request与response处理之间的一道处理过程。1.Django项目中默认启用了csrf保护,每次请求时通过CSRF中间件检查请求中是否有正确#token值2.当用户在页面上发送请求时,通过自定义的认证中间件,判断用户是否已经登陆,未登陆就去登陆。3.当有用户请求过来时,判断用户是否在白名单或者在黑名单里其内置的五个方法:1.process_request...

2019-10-12 00:54:00 57

原创 python递归

1.1 递归讲解  1、定义      1.在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。  2、递归特性      1. 必须有一个明确的结束条件      2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少      3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(sta...

2019-07-15 09:58:00 92

原创 python中的生成器

什么是生成器?生成器是一个包含了特殊关键字yield的函数。当被调用的时候,生成器函数返回一个生成器。可以使用send,throw,close方法让生成器和外界交互。生成器也是迭代器,但是它不仅仅是迭代器,拥有next方法并且行为和迭代器完全相同。所以生成器也可以用于python的循环中,如何使用?首先看一个例子:[](javascript:void(0)

2019-07-15 09:37:10 85

原创 Celery透彻理解

生产者消费者模式在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。单单抽象出生产者和消费者,还够不上是生产者消费者模式。该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数...

2019-07-15 09:35:05 629 1

原创 InnoDB

innodbInnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和insert,建议使用InnoDB,特别是针对多个并发和QPS较高的情况。​ 1.Innodb是事务性数据库的首选引擎,支持ACID事物,支持行级锁定,高性能处理大量数据。​ 2.Innodb给mysql提供了具有 ’事务、回滚和崩溃修复能力、多版本并发控制的事务安全型表。我们可以...

2019-07-15 09:33:09 7132

转载 CORS实现跨域请求

1.cors跨域请求介绍1.cors是什么?1. 随着技术的发展,现在的浏览器可以支持主动设置从而允许跨域请求,即:跨域 资源共享(CORS,Cross-Origin Resource Sharing)2. 其本质是设置响应头,使得浏览器允许跨域请求。  2、简单请求必须满足的两个条件(不满足就是 复杂请求)  1. 条件1: 请求方式:HEAD、GET、POST   2. 条件...

2019-07-09 22:40:37 415

原创 -了解Redis服务端和客户的命令

学习目标了解Redis服务端和客户的命令服务器端服务器端的命令为redis-server可以使用help查看帮助文档redis-server --help推荐使用服务的方式管理redis服务启动sudu servece redis star停止sudu service redis stop重启sudu service redis r...

2019-07-09 22:40:00 117

转载 腾讯云部署web项目步骤

一、服务器和域名的购买登陆腾讯云(网址自行百度)。如果你是学生,强烈建议你和我一样完成学生认证,土豪请无视这一句话。再次给腾讯安利一波。接下来就是服务器和域名的购买,这里就随便了。域名你想注册什么就随便吧。云服务器的话,如果你是学生用户的话,服务器只能买入门级的。土豪当然是买贵的好啦。在这里要注意的就是服务器的镜像选择,我的本地开发是用windows的,所以镜像我也选win了,而且Linu...

2019-07-08 19:26:36 278

原创 搭建FTP服务器

一.搭建FTP服务器###思路:一台服务器安装软件yum -y install vsftpdcd var/ftp启动服务rpm -q vsftpd #查看版本号service vsftpd start #启动FTP服务测试验证​ 可以通过 ftp://127.0.0.1来访问到你的 FTP服务器二.FTP服务器的客户端工具安装FTP工具cd...

2019-07-08 19:25:17 129

原创 CentOS7常用指令

常用命令文件与目录操作rm -rf dir 强制删除文件夹及其内容,不提示mv dir/file dir ...

2019-07-08 19:24:36 317

原创 Linux修改pip下载源

Linux下永久更换镜像源需要修改~/ .pip/pip.confcd~mkdir pipcd pipvi pip.conf在pip.conf中,添加配置内容i 进入插入状态[global]timeout = 6000index-url = http://pypi.douban.com/simpletrusted-host = pypi.douban....

2019-07-08 19:23:58 2907

原创 JWT使用

1.1 安装jwt模块并创建用户APP# 安装: pip install djangorestframework-jwt# 添加应用:python manage.py users1.2 配置settings.py########### 1、在INSTALLED_APPS中加入'rest_framework.authtoken', #################INSTALLED_A...

2019-07-08 19:21:57 229

转载 Linux下进行redis的安装和配置

LInux下进行redis的安装和配置(开启远程连接)今天做不成的事,明天也不会做好。什么是redis?1.核心概念Redis是用C语言开发的高性能的键值对存储的非关系数据库。Redis存储的数据类型有以下几种:字符(String)、散列(Hash)、列表(List)、集合(Set)、有序集合(ZSet)2.历史发展2008年,意大利的一家创业公司Merzia推出了一款基于MySQL...

2019-07-08 19:21:00 252

原创 Hexo博客搭建

Hexo博客搭建安装hexocnpm install hexo -gHexo初始化项目hexo init安装github的管理工具配置仓库路径deploy: type: git repo: https://gitee.com/eastside/blog.git branch: master每次上传新的博客内容,先要清理本地的缓存文件hexo...

2019-07-08 19:19:50 209

原创 什么是jwt?

json web token(jwt)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC7519),该 token被设计为紧凑且安全的,特别适合于分布式站点的单店登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。起...

2019-06-26 23:06:54 1397

原创 20万用户同时访问一个热点Key,如何优化缓存架构?

一、为什么要用缓存集群啥叫热 Key 和大 Value 呢?简单来说,热 Key,就是你的缓存集群中的某个 Key 瞬间被数万甚至十万的并发请求打爆。大 Value,就是你的某个 Key 对应的 Value 可能有 GB 级的大小,导致查询 Value 的时候出现网络相关的故障问题。先来看看下面的一幅图:简单来说,假设你手头有个系统,他本身是集群部署的,然后后面有一套缓存集群,这个集群不...

2019-06-12 10:35:13 136

翻译 再过半小时,你就能明白kafka的工作原理了

为什么需要消息队列周末无聊刷着手机,某宝网APP突然蹦出来一条消息“为了回馈老客户,女朋友买一送一,活动仅限今天!”。买一送一还有这种好事,那我可不能错过!忍不住立马点了去。于是选了两个最新款,下单、支付一气呵成!满足的躺在床上,想着马上有女朋友了,竟然幸福的失眠了……第二天正常上着班,突然接到快递小哥的电话:小哥:“你是xx吗?你的女朋友到了,我现在在你楼下,你来拿一下吧!”。我:“这…...

2019-06-11 20:45:56 128

空空如也

空空如也

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

TA关注的人

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