自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dolphin's Blog

社会小青年,从事 Python 后端开发,喜欢玩,倒腾爬虫,鼓捣数据。可能会乱七八糟的什么都有。

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

原创 优雅的使用 Python 协程

协程(Coroutine)是由程序员在代码中显示调度的。(进程和线程是由操作系统调度,线程是操作系统调度的最小单位)。看过前边的文章应该知道,线程任务在 IO 阻塞之后,操作系统会进行线程切换,这个切换会浪费时间与资源。而协程是在单个线程中并发的多个任务,当执行中的协程任务遇到阻塞之后,立即切换到其他就绪状态协程任务去执行,这样会极大的减小了线程因为阻塞而有操作系统切换。协程的切换属于程序级别,...

2020-02-24 22:16:26 213

原创 Python 多进程的使用

一、普通多进程import timeimport multiprocessingdef worker(flag): print("before sleep---%s" % flag) time.sleep(3) print("after sleep---%s" % flag)if __name__ == '__main__': p_one = multi...

2020-02-24 22:14:06 189

原创 Python 中多线程的使用

写在前面:由于 Global Interpreter Lock(全局解释器锁) 的存在,Python 的多线程是无法实现多个线程并行,而是多个线程并发。这也就是 Python 多进程”鸡肋“的地方。关于Python GIL 的一些故事,可以到这篇文章了解一下。Python3 通过两个标准库 _thread 和 threading 提供对线程的支持,更推荐使用 threading。_th...

2020-02-24 22:10:20 392

原创 Python 中的生成器和迭代器

写在前面:迭代:类似对可迭代对象执行 for…in… 这样操作的过程叫做迭代可迭代对象像 Python 的基础类型 list、dict、str 都属性可迭代对象,可以这样来判断一个对象是不是可迭代对象:from collections.abc import Iterableif __name__ == "__main__": print(isinstance("dolphi...

2020-02-24 22:08:39 89

原创 关于 Python GIL锁的讨论

写在前面:先讲两个概念:并发:多个任务交替执行,当任务一遇到阻塞或者时间片用完将其挂起,切换到任务二区执行。从宏观上来看也是多核任务“同时”执行。并行:多任务同时执行,在多核心 CPU 时间,多个任务在多核 CPU 核心上同时执行。Global Interpreter Lock 的前世今生谈到多进程/多线程,数据安全是不可忽略的。而在 Python 的设计之初,计算机大多是单核的,多...

2020-02-24 21:55:51 100

原创 从零开始配置 python 开发环境

最近公司有一个古老项目需要维护,写这个的时候我还没有来公司,结果呢,整开发环境就整了多半天,关键是还没!有!整!好!恰逢周五,为了不耽误下周一正常进行开发,下班果断把电脑带回家了。结果到家的一顿操作猛如虎,项目是跑起来了,可是我的系统强迫症犯了,于是在它的威逼下我决定重装一下它的系统,然后也写下了这篇文章。给自己做个记录,如果也可以为一些朋友排忧解难,那就更好了。好了,废话絮叨完了。开始进入正...

2020-02-24 21:54:14 404

原创 必须掌握的计算机基础算法

一、二分查找其要求操作的数据集必须是一个有序列表过程:每次都取中间值,比大小,再取中间时间复杂度:对一个长为 N 的列表查找:对于二分查找,最坏的情况为要查找的结果为紧挨查找开始时两端中的任意一段,这是时间复杂度为 \log_2 N对于顺序查找,最坏的情况为要查找的结果在列表末尾,其时间复杂度为 N关于时间复杂度的一个知识点通常在大O表示法中忽略常数,但是在进行时间复...

2019-11-25 22:08:13 1690

原创 Redis 教程-- 一文整明白 Redis

Redis 的基本数据类型string:可以存储字符串、正数、浮点数list:链表,链表上的每个节点都包含一个字符串set:集合,包含字符串的无序收集器,并且包含的字符串都要独一无二hash:包含键值对的无序散列表zset:字符串成员与浮点数之间的有序映射,元素的排列顺序由分值的大小决定,默认按照从小到大排列Redis 结构相关命令String 自增自减相关的命令只有可以被解释...

2019-11-25 22:03:57 148

原创 Vue入门基础篇

写在前面:Vue API 文档一、创建实例var data = { foo:'bar'}var vm = new Vue({ el:'#app', data:data })如果在后续的操作中,无论是对vue实例的属性值做修改还是对原始data数据的值做修改,有联动效果,除非在创建data对象之后将其冻结。Object.freeze(data)除了数据属性外,Vue ...

2019-05-30 11:12:12 345

原创 在模板中处理 django-Form

1.0 在视图中获取# view.pyfrom .forms import MyFormdef view(request): if requrest.method == "POST" myForm = MyForm(requrest.post) if myForm.is_valid(): # 验证通过,获取数据 ...

2018-07-25 11:52:15 1226

原创 MySQL 常用操作集锦

因为在MySQL5.7 之后的版本在安装时生成了一个默认实效的随机密码,在登录的时候会出现问题,为了方便操作,在安装后更改默认密码为自己密码。1.0 MySQL 安装# 安装mysql服务sudo apt-get install mysql-server# 安装客户端sudo apt install mysql-client# 安装依赖sudo apt install lib...

2018-07-18 23:05:05 151

原创 在 pycharm 中为 scrapy 配置 Run/Debug Configurations

主要是为了在pycharm中可以通过点击Run/Debug 按钮来代替每次在命令行中输入 scrapy crawl crawlName步骤 1在scrapy的项目目录中创建一个 start.py 文件,写入如下内容:# -*- coding:utf-8 -*-from scrapy import cmdlinecmdline.execute("scrapy crawl craw...

2018-07-15 22:32:59 2974

原创 Linux 命令大全

1.0 用户相关用户的创建与删除# 创建新用户sudo adduser username #(推荐)sudo useradd username# 授予 sudo 权限sudo usermod -a -G adm usernamesudo usermod -a -G sudo username# 删除用户sudo userdel -r username #(会删除用户文件夹...

2018-07-15 19:14:23 144

原创 Git使用:在一台机器上配置多个密钥对

1.0 (第)一个密钥对ssh-keygen -t rsa -C "邮箱地址"然后联系Enter三次 然后把公钥上传到服务器2.0 配置第二个密钥2.1 同样的,先生成ssh-keygen -t rsa -C "邮箱地址"Enter 之后会要输入密钥对的名称,如果在同一台机器上配置多个密钥对需要 为每个密钥对设置不同的名称。 之后会要输入密码,为空即可。...

2018-07-10 16:20:44 1955

原创 Scrapy 爬虫框架结构及示例-爬取豆瓣电影Top250

1.0创建爬虫1.1 创建 projectscrapy startproject mySpider1.2 创建爬虫# 创建一个基于 scrapy.Spider 类的爬虫scrapy genspider SpiderName "domain.com"# 创建以及基于 scrapy.spiders.CrawlSpider 的爬虫scrapy genspider -t cr...

2018-07-09 21:55:55 768

原创 Docker 的一些基本命令

获取镜像docker pull ubuntu:16.04 列出镜像docker image ls 镜像/容器 体积docker system df 虚悬镜像# 查看:docker image ls -f dangling=true# 删除所有:docker image prune中间层镜像查看:docker...

2018-07-05 15:23:45 444

原创 Python 开发常用环境变量(Windows)

;C:\tools\Git\cmd;C:\Python27\Scripts\;C:\Python27\;C:\Program Files\MySQL\MySQL Server 5.6\bin;C:\Redis\;C:\Python36\Scripts\;C:\Python36\

2018-06-28 12:04:17 385

原创 在 python3.6 中安装 Crypto 库

在 python3.6 中使用 Crypto库1.0 安装:pip install pycrypto很大的几率会失败,网上说的安装vs呀什么的方案我嫌太臃肿,放弃。直接找过来 whl 安装:点我下载进入要安装到的虚拟环境,pip安装:pip install pycrypto-2.6.1-cp36-cp36m-win_amd64.whl# 这么长的名字没必要全写的,写完前几...

2018-06-25 19:53:48 13036 13

原创 五分钟学会使用XPath

XPath 是什么? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。先介绍工具Chrome插件:XPath HelperFirefox插件:XPath Checker开源的XPath表达式编辑工具:XMLQuire这些工具可以方便再浏览器中测试我们写的 XPath ,看看所...

2018-06-23 15:10:38 466

原创 使用 Python 操作文件(对文件读取与写入)

1.0 打开与关闭open(“文件名”,”打开方式”) .close() 打开文件时的文件名包括地址和后缀;打开方式如下表 举个栗子: f = open("text.txt",r) # 只读方式打开同目录下的text.txt f.close() # 关闭这个文件2.0 写入.write(“要写入的内容”) ...

2018-06-22 17:46:58 5784

原创 Ubuntu 下配置 python 开发环境

Ubuntu 下配置 python 开发环境 环境:Ubuntu 16.041.0 更改系统 apt 源Ubuntu 的软件源配置文件是 /etc/apt/sources.list 文件中。 可以将其更改为国内的软件源,例如: 清华大学开源软件镜像站(中科大开源软件镜像站)[]1.1 备份 sources.list 并更改:# 备份原来的源cp /etc/...

2018-06-22 16:13:31 297

原创 快速在 Django 中使用 Celery 配置异步执行与定时任务

在 django 中使用 Celery各位小伙伴注意,Celery大于3.1.25的版本不再支持Windows。Windows下推荐安装 3.1.25。(因为我使用的 Windows,这里就以3.1.25为例。如果你还没有严重依赖Windows,请尽快投向Mac os 或 Linux 的怀抱。)1.0 安装pip install celery==3.1.252.0 先...

2018-06-21 16:52:37 613 1

原创 Ubuntu 系统的软件安装及相关配置操作

Ubuntu 系统的软件安装及相关配置操作1. 安装 deb 格式的软件包这里以 sougoupinyin_64.deb 为例(1). 执行安装命令sudo dpkg -i sougoupinyin_64.deb注意这里的 sougoupinyin_64.deb 是是安装包的名称(2).如果提示有依赖问题没有解决,执行sudo apt-get -f ...

2018-06-21 13:55:33 209

转载 Apache服务器的vhost------可实现在同一台服务器上放置多个网站

Apache服务器的vhost------可实现在同一台服务器上放置多个网站

2015-11-20 23:22:54 536

空空如也

空空如也

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

TA关注的人

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