- 博客(39)
- 资源 (4)
- 收藏
- 关注
原创 谈谈有关 Python 的GIL 和 互斥锁
有 Python 开发经验的人也许听说过这样一句话:Python 不能充分利用 CPU 的多核优势。这句话是正确的。为什么 Python 不能够利用CPU 的多核优势呢?简单来说就是因为在 Python 中存在 GIL,即global interpreter lock(全局解释器锁)。Python 程序尽管也支持多线程,但由于受到 GIL 的保护,所以同一时刻,只有一条线程可以向前执行。接...
2018-07-29 20:07:20 1636
原创 你真的理解 if __name__ == '__main__' 的作用么?
在 python 的开发过程中经常需要用到if __name__ == '__main__' ?,那么你真的理解if __name__ == '__main__' 的作用么?在开发环境下:我们定义一个test.py文件。代码如下:def myTest(): print("test", __name__) a = 1 b = 2 return a + ...
2019-03-11 19:05:28 1143
原创 Flask之初识
Flask是......不用我介绍了,你既然已经来看这篇博客了,我想你对Flask的熟识程度已经达到一种级别了。接下来我们一起学习Flask。一、快速开发一个web页面from flask import Flaskapp = Flask(__name__)@app.route('/hello/')def index(): return 'hello i use py...
2019-03-07 21:54:38 337
原创 如何将scrapy爬虫转换为scrapy_redis爬虫?
注意事项:在阅读本文之前,必须具备使用scrapy编写爬虫的能力。使用scrapy框架就可以快速开发一个爬虫,如果针对一个大型的网站,单机爬虫就会显得心有余而力不足。那么有没有便捷的办法是单机爬虫转换为分布式爬虫呢?首先需要了解单机爬虫与分布式爬虫的区别:我们先来查看两张思维导图:scrapy 框架实现原理scrapy_redis 框架实现原理在上述两张图示中我们可...
2019-02-25 20:20:04 840
原创 编写高质量Python代码的59个有效方法
第1章:用Pythonic方式来思考 1.1 确认自己所用的Python版本 1 目前有两个版本的Python处于活跃状态:Python2和Python3.2 流行的Python运行时(runtime)环境:CPython,Jython,IronPython以及PyPy等。3 在操作系統的命令行中运行Python时,确保该Python的版本与你使用的Py...
2019-01-25 19:49:12 1247
原创 Django 开发自定义抛出异常的三种方法
在开发过程中,针对用户输入的不合法信息,我们应该在后端进行数据验证,并抛出相关的异常传递到前端来提示用户。可是如何进行自定义抛出异常信息呢?通常处理方法有三种,我将依次介绍这三种方法。第一种方法:这种方法最为简单,只需要创建一个字典对象,通过render传到前端即可。字典对象如下:result = {'code':'', 'message':''}render(reques...
2018-12-30 14:50:34 6343
原创 Python 中装饰器的延后使用解决循环导入的问题
装饰器作为 Python 中一个很重要的组成部分,除了装饰器的常规用法之外,本文只是介绍一下装饰器的延迟用法。本文中出现的代码是基于Flask框架。在main.py文件中有如下代码:# 本期主题是利用装饰器的延后使用解决循环导入的问题from flask import Flaskfrom login import loginfrom register import register...
2018-12-29 20:18:51 722
原创 VMware中Ubuntu 扩容(Mac 系统)
由于笔者使用 VMware 安装的 Ubuntu 容量即将消耗殆尽,扩容就成了必须解决的问题。关于Ubuntu 扩容的问题,我随手百度了一下,想看看其他博友是如何解决这个问题的,看到最常用的方法就是利用GParted图视化软件进行操作。利用 GParted 进行扩容是很简单的操作。具体操作如下:① 下载安装 GParted。利用 Ubuntu 自带的Ubuntu 软件包搜索下载安装。...
2018-12-21 21:20:27 1318
原创 Django开发常用文件导入
在用 Django开发过程中经常需要导入一些模块,由于模块众多,常常记不清楚,笔者整理了常用的文件模块,便于在开发过程中参考使用。from django.conf import global_settings, settingsfrom django.db.models import F, Qfrom django.urls import reversefrom django.http...
2018-12-13 21:38:25 643 1
原创 IPython 的%魔术命令
IPython 属于交互式开发平台,可以快速验证一些数据逻辑。但是你知道 IPython的常用魔术命令么?如何查看IPython的所有魔术命令?只需要执行%magic就能够查看所有的魔术命令本文只列举几个常用的魔术命令:%hist 用来查看 IPython 命令的输入历史%pdb 异常发生后自动进入调试器%reset 删除当前命名空间中的全部变量或名称%who ...
2018-12-08 09:11:47 1025
原创 Restful 规范
作为后端开发者,Restful 规范已经是我们的形影不离的朋友。在设计 URL 的时候,我们要不停的问问自己是否遵循了Restful 规范。对于初学者而言,如何快速熟记该规范呢?总结如下:第一部分:明白 Restful 规范的核心思想: ① 面向资源编程,URL 中尽量不要使用动词,使用名词替代。 ② 根据 HTTP 的请求方式的不同对资源进行不...
2018-11-20 18:53:17 294
原创 使用pipenv 出现TypeError: 'module' object is not callable
需要使用pipenv 创建一个新的虚拟环境,但是执行pipenv install django时出现了如下错误:最初以为是自带的源被屏蔽了,更换为淘宝镜像,还是无法安装,顿时懵逼了。该如何解决呢???官网应该是最靠谱的地方,在官网查看了半天还是没有解决这个问题。发现官网已经更新了版本,我猜测是不是版本的问题,使用如下命令升级了版本:pip install --user --u...
2018-11-06 22:12:55 2361
原创 jQuery 的总结1
jQuery 是对JavaScript的封装,能够使我们使用少量的代码就可以达到同原生 JS 的效果。一、是否需要导入框架原生 JS 不需要导入框架,可以直接在<script>标签中进行逻辑处理;jQuery 需要先在官方网站下载文档,该文档分为两部分:开发框架和生产框架,两者最大的区别在于:生产框架是对开发框架的压缩,方便在服务器上进行部署。二、初始使用JS 的使...
2018-10-09 19:12:48 344
原创 Vue 基础知识01
Vue 是现阶段最火爆的前端语言, 作为一名开发人员,有必要熟悉这些语言新贵,方能在技术快速迭代的浪潮中不被时代抛弃。只要你懂得前端的三驾马车和 jQuery,那么 Vue 将会快速上手。一、Vue 的语言模板格式作为一种在客户端处理逻辑运算和渲染的前端语言,Vue 会和HTML 语言绑定在一起。<!DOCTYPE html><html lang="en"&...
2018-09-19 20:44:39 365
原创 Linux远程服务器的配置
服务器的部署通常选择 minimal 版本,因此需要自己安装一些必须的工具来辅助部署。一、安装 minimal 版系统笔者这里选用的是 Cent OS Minimal版,关于安装的步骤这里不再赘述,如果对于安装过程不明白的朋友,请自行百度。二、基本操作安装由于是 minimal 版本,所以你熟悉的ifconfig命令都需要你自己手动安装。是不是没有了ifconfig 命令就不能...
2018-09-15 07:59:19 2122
原创 Day 002 java 基础知识2
写一个hello world 似乎成了学习每一类编程语言不变的惯例,当然 java 也不会例外,那么 java 的 hello world 格式该如何编写呢?public class HelloWorld { public static void main(String[] args) { System.out.println(“hello world”); ...
2018-09-12 19:13:44 225
原创 使用 Pipenv配置虚拟环境
virtualenv 作为老牌的虚拟环境,有着无可比拟的地位,但是针对不同的操作系统,安装配置的过程中比较麻烦,会让人心生厌烦。可是Pipenv作为新贵,正在逐渐侵蚀virtualenv 的王者地位。pipenv 不仅在不同的操作系统上安装方便,而且使用过程也同样简单易用。如果你是编程新手,我建议你安装pipenv来创建虚拟环境。关于 Pipenv的具体安装与使用详见下文(当然你也可以...
2018-09-11 22:15:25 2516
原创 Day 001 java 基础知识1
java 语言在所有编程语言中的地位不言而喻,作为 java 的菜鸟,记录一下 java 的学习历程。仅仅为了督促自己能够掌握一门新的编程语言。一、java 开发的环境变量配置作为一名python开发者,习惯使用 Mac 编程。经常使用 Anaconda,然而Anaconda又需要基于 java 的 JDK,因此我很早就配置好了 java 的开发环境,在此关于 java 环境的配置不再赘述...
2018-09-11 19:09:25 266
原创 探究Python开发中的with语句的内部实现原理
在 Python 开发中,经常会用到 with 语句来进行文件的读写操作。使用 with 语句方便开发,可是 with 语句的内部实现原理是什么呢?我们在操作数据库的时候经常会自定义一个类,用来封装 SQL 的内部实现,便于在多个地方调用。今天我们依旧使用封装的数据库类作为模板进行 with 语句的探讨。请看如下代码:class SQLHelper(object): def ...
2018-09-02 14:45:38 707
原创 Python开发中如何访问私有属性?
当我们定义一个类的时候,有时候会定义一个私有属性来辅助开发。在其它语言中经常会用到 private 来修饰这个属性为私有属性。可是你知道么?同样为私有属性,有的开发语言中是真私有属性,有的是假私有属性。例如 :在 OC 开发过程中出现的私有属性就是假私有属性,通过 runtime 可以很方便拿到私有属性并进行修改。同出师门,swift 中的私有属性就是真私有属性,通常需要 private 来修...
2018-09-01 17:52:09 3829 2
原创 Python开发过程中的反射
反射机制在许多语言中都存在,有时候利用好反射机制能够使你的开发逻辑更加简单,起到事半功倍的效果。那么 Python 中的反射如何使用呢?请继续往下看。① 创建两个模块:名字分别为app.py、test.py在 app.py 中定义一个简单的函数,如下所示:② 在test.py模块中首先导入模块:importlib具体代码如下所示:③ 执行test.py模块,就会看到控制...
2018-08-23 18:56:17 342
原创 浅谈Python开发中 for 循环
在 python 开发中,for 循环语句会经常用到。那么你了解 for 循环么?例如:iitem = [1, 2, 3, 4, 5]for i in item: print(i)执行上述代码,你看到将会依次打印1,2,3,4,5可是在执行上述代码的过程中,到底执行了什么呢?for 循环语句在底层执行了三件事:① 调用可迭代对象的 iter 方法,返回一...
2018-08-21 19:31:55 480
原创 有关ajax请求
ajax 请求简单来说就是在不更改请求页面的同时刷新页面。常用的 ajax 请求格式如下:$.ajax({ url:"请求地址", type:"请求方法", // 常用的请求方法为 GET POST datatype:"JSON", // 常用的请求格式为 JSON data:{ }, // 通常情况下为字典格式。 succes...
2018-08-19 15:00:39 405
原创 CentOS 7 快速安装 Chrome 浏览器
废话少说,直接进入正题。第一步: 执行如下命令:cd /etc/yum.repos.d/第二步:命令如下:创建一个repo文档vim google-chrome.repo第三步:命令如下:把下列代码粘贴即可[google-chrome]name=google-chromebaseurl=http://dl.google.com/linux/chrome/rpm/...
2018-08-18 16:32:09 4173 1
原创 Mac 版 VMware安装 CentOS7 注意事项
关于CentOS7安装的具体步骤,已经有许多博主已经详细介绍了具体的安装步骤,如果有安装上的困惑请自行百度。在此,我只想告诉大家一个注意事项:当你安装CentOS7成功之后,关机之后再次开机时,会出现需要重新安装的页面。你也许会有疑惑:我已经安装成功了,为什么还会提醒再次安装呢?这是因为你在关机之后,遗忘了一个设置步骤的原因。具体步骤如下:第一步:打开虚拟机中的设置,进入如下页...
2018-08-17 21:55:33 2046
原创 Python 内置函数dir说明
简单来说,如果调用了该函数将会返回一个属性列表。 我们首先来看看官方文档如何解释:dir() 函数:① 不带参数时,返回当前范围内的变量、方法和定义的类型列表;② 带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度的收集参数信息。函数的参数可以是:对象、变量、类型。返回值是一个属性列...
2018-08-07 19:32:10 559
原创 详解Python 中的eval函数
在 Python 学习中如果能够利用好 Python 自带的函数,那么开发的速度将会出现事半功倍的效果。一直以来关于 eval 函数的用法不是很清楚,毕竟这个函数在开发中出现的频率不算高。但是详细了解 eval 函数的用法,也是很重要的。首先看看 eval 函数的官方解释:看完了,官方解释,我们具体看看 eval 函数的用法。① 将字符串列表转换为列表② 将字符串元组转...
2018-07-29 10:49:22 22231 1
原创 Ubuntu 18.04 安装 Postman
开发过程经常用到 Postman来发起网络请求,这个软件可以带来很大的遍历。那么该如何正确安装这个软件呢?废话少说,我们来快速安装:第1步:从官网下载你所需要的相应软件包。第2步: 我把下载的软件包放置在桌面路径,所以先进入桌面路径,再解压你下载的软件压缩包命令如下:sudo tar -xzf Postman-linux-x64-6.1.13.tar.gz第3步:在当前路径下,...
2018-07-28 17:10:15 4570
原创 Mac 中 PyCharm 配置 Anaconda环境
在 python 开发中我们最常用的IDE就是PyCharm,有关PyCharm的优点这里就不在赘述。在项目开发中我们经常用到许多第三方库,用的最多的命令就是pip install 第三方库名 进行安装。现在你可以使用一个工具来帮你解决经常安装第三方库的麻烦,这个工具就是Anaconda。Anaconda集成了100多个常用的第三方库,在项目的开发中就可以减少使用 pip 命令进行安装。有关A...
2018-07-26 21:22:46 60250 36
原创 Vim编辑器设置行号
在安装完成 Ubuntu18.04 之后,使用 Vim编辑器,你会发现用 Vim 编辑器打开的文件没有行号,table 键页不能出现你想要的一次向前跳4个空格,这时候你需要配置一个文件才能够事项上述功能。具体步骤如下所示:第1步:打开终端第2步:使用如下命令:vim ~/.vimrc,回车这时候你就打开了相应的文件第3步:配置你想要实现的功能① 设置Vim编辑器...
2018-07-21 10:53:19 1014
原创 在ubuntu 18.04 安装 Chrome浏览器
在开发过程使用 google 的 Chrome 能够带来大量的工作便利,Chrome 是开发者最优秀的工作伙伴之一。那么,如何在 Ubuntu18.04上安装所需要的 Chrome 浏览器?第一步:登录谷歌官网选择适合自己电脑的 Chrome浏览器版本。第二步:将压缩包google-chrome-stable_current_amd64.deb移动到/usr/local文件内。终端命令:sudo ...
2018-07-07 20:17:53 5721
原创 关于django开发使用python3 无法生成迁移问题
最近的项目开发中使用到了python3,可是项目刚开始没多久就遇到了一些问题,当我执行pyrthon manage.py makemigrations命令时,出现了如下的错误提示:错误提示: No module name 'MySQLdb'由于mysql-python无法支持python3,所以开发陷入僵局。那么如何解决这个问题呢?我们可以使用pymysql替代解决这个问题:首先,确保你已经安装 ...
2018-07-02 21:58:53 2587
原创 Windows虚拟机无法使用ping命令连接主机的疑问解答
我在 Mac 上通过 VMware安装了 Ubuntu 和Window7,发现 Ubuntu 可以和 Mac 通过 ping 连接,但是 Window7 却无法通过ping 命令连接,经过一番查找终于解决了这个问题,问题在于 Windows,具体解决步骤如下所示:1. 打开Window77防火墙2. 选择高级设置3.入站规则4. 找到配置文件类型为“文件和打印共享(回显请求 – ICMPv4-I...
2018-06-10 12:31:10 1550
原创 关于 ImportError: cannot import name etree 的原因解析
昨天晚上写了一个爬虫,竟然犯了一个从未注意的问题。导致运行的时候,不断提示如下错误提示: ImportError: cannot import name etree。我检查了是否安装 lxml 框架,结果显示安装正确,如下所示:看到这个提示我就顿时懵了,lxml 安装正常,为什么还会提示 cannot import name etree ,查找了好久,也没发现错误,就放弃了。今天早上跑步回来,再次...
2018-06-02 16:11:03 14880 6
原创 MySQL8.0 的远程链接
MySQL8.0 安装完成后出现无法远程链接的现象,这是因为MySQL8.0 只支持 localhost 访问,我们必须设置一下才可以远程访问。具体设置步骤如下:① 登录MySQL执行命令为:mysql -u root -p 回车后输入密码② 选择 mysql 数据库执行命令为:use mysql;查看mysql 数据库中存储的用户信息的 user 表。③ 查看mysql 数据库的 user 表中...
2018-05-28 19:15:05 2420 1
原创 ubuntu 18.04 虚拟环境安装数据库失败的原因及答疑
最近使用 Ubuntu 18.04开发项目,可是今天安装MySQL 数据库时出现了如下错误提示:因为好久没有引入数据库了,当看到这个错误提示,一直处于懵懂状态,不知所措。经过查找资料发现: mysql-python项目已经很久没有更新了,处于几乎无人维护的状态。建议使用 pymysql ,它是python平台访问mysql数据库的标准化驱动,支持python2.7, 3.3, ...
2018-05-27 11:40:46 1043
原创 ubuntu18.04安装Python虚拟环境:virtualenv
最近重新安装了ubuntu虚拟机,顺便把ubuntu给升级到了最新的18.04版本,虽然体验了最新版本带了的视觉冲击,但是同时带了一些麻烦。经常使用的 virtualenv 在版本升级之后竟然需要自己手动安装,既然这样那就手动安装。可是安装的过程中遇到一点小小的麻烦,现在将我遇到的麻烦告知大家,仅供安装ubuntu18.04版本的一个参考。第一步:安装virtualenv执行命令:pip3 ins...
2018-05-26 07:12:26 6211 1
原创 探讨 python 匿名函数的使用
在 python 开发过程中,我们经常使用函数来封装一段代码,该函数具有实现某个功能的作用,方便在程序的其他地方调用。往往我们定义的函数是用来解决复杂问题的封装。然而,在开发过程中,不免会遇到一些简单的函数调用,这个时候,选择自定义一个函数有可能不符合实际,此时我们可以选择匿名函数来解决这个问题。Part 1:匿名函数的简单实用在引入匿名函数之前,我们先调用一个简单的自定义函数,如下所示:这个函数...
2018-05-08 18:44:57 5764 3
原创 详谈Git 的有关用法
1.Git入门1.1 什么是版本控制?版本控制是一套系统,该系统按时间顺序记录某一个或一系列文件的变更,让你可以查看其以前的特定版本。1.2 版本控制器的分类?常用的版本控制器分为:集中式版本控制系统(简称CVCS)和分布式版本控制系统(简称DCVS)集中式版本控制系统分布式版本控制系统1.3 Git简史Git诞生于2005年,采用分布式版本控制系统,经过多年的不断发展,日趋成熟易用。1.4 Gi...
2018-03-14 21:05:47 355
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人