自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

松鼠豪的坚果

代码似坚果,坚果似初恋。

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

原创 Python目录

写在前面: 整个IT产业只是在共同做好一件事--------信息(数据)的处理,对有用信息提取,存、增、删、改、查,然后更好的呈现在客户面前。 本文主要涵括博主以Python为主的后端体系技术点介绍,以及关于工作、学习的心得,与同行、同好交流分享。 语言、框架都只是工具,重要的是思想。日常工作学习中不应只满足于熟练调用接口,虽然技术日新月异,但万变不离其宗...

2019-08-17 21:04:29 22536 16

翻译 如果有人问你数据库的原理,看这篇文章。(超长预警)

长文,相当的通透。以下为scrat进行总结后的删减版。下面假定你已经知道时间复杂度关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。作为一个开发人员,我不喜欢用我不明白的东西。数据库已经使用了40年之久,一定有理由的。关系型数据库非常有趣,因为它们是基于实用而且可复用的概念。如果你对了解一个数据库...

2019-08-28 17:00:32 1022 2

转载 前端常见跨域解决方案

什么是跨域?跨域是指的一个域名下的文档或者脚本试图去请求另一个域名下的资源,这里跨域是广义的。广义的跨域资源跳转:A链接、重定向、表单提交 资源嵌入:<link> 、<script> 、<img> 、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 脚本请求:js发起的ajax...

2019-08-28 07:43:51 499

翻译 Python 文件操作

什么是文件 ?这是文件这是计算机中的文件文件的作用 “好记性不如烂笔头”。 不仅人的大脑会遗忘事情,计算机也会如此,比如⼀个程序在运⾏过程中⽤了九牛二虎之力终于计算出了结果,试想⼀下如果不把这些数据存放起来,相⽐重启电脑之后,“哭都没地⽅哭了” 可见,在把数据存储起来有做么⼤的价值 。使⽤⽂件的⽬的: 就是把⼀些存储存放起来,可以让程序下⼀次执行的时候直接...

2019-08-25 16:15:42 1109 4

翻译 Python 异常处理

异常:当Python检测到⼀个错误时,解释器就⽆法继续执⾏了,会出现⼀些错误的提示,这就是所谓的"异常"。看如下示例:print('-----test--1---')open('123.txt','r')print('-----test--2---')打开⼀个不存在的⽂件123.txt,当找不到123.txt ⽂件时,就会抛出给我们⼀个IOError类型的错误,No such...

2019-08-25 15:41:12 612 1

翻译 面向对象编程(OOP)

什么是面向对象 ? 面向对象编程 (OOP,Object Oriented Programming)可以理解为将具有相互 关系的数据/操作封装成对象,以对象的⻆度去处理问题,让对象来完成相应处理 。面向对象 vs 面向过程:按照业务逻辑 从上到下 设计程序 的⽅式,叫做 ⾯向过程编程 (Procedure OrientedProgramming,POP,⾯向过程程序设计) 面向过程...

2019-08-23 18:20:37 937 1

转载 防瞎指南----程序员如何保护自己的眼睛

这篇文章由一个老程序员所整理,作者工作(编码)10年来,视力一直比较稳定,下面是他分享给广大程序员的护眼经验。1、修改Visual Studio/SQL Server Management Studio编程字体大小安装好编程软件,第一个要做的事情是修改字体大小。我一般是改成14pt,工具软件的默认字体值9pt太小了(Visual Studio .NET 2003的默认字体大小是9pt,...

2019-08-19 15:26:25 975

原创 闭包、装饰器

什么是闭包闭包是与引用及作用域相关的计算机专业术语,先看下面一个demo函数的引用:def test(): print('---in test func---')test() # 调用函数ret = test # 引用函数print(id(ret))print(id(test))ret() # 通过引用调用函数运行结果:---in test...

2019-08-18 15:33:32 575

原创 协程(微线程)、greenlet、gevent

协程 协程(Coroutine) 是python中另外一种实现多任务的方式,比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机,可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。通俗的理解: 在一个线程中的某个函数,可以在任何地方保存当前函数的...

2019-08-18 09:55:44 473

翻译 多任务----进程

进程进程 vs 程序程序:例如xx.py这是程序,是一个静态的文件。 进程:一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。多任务不仅可以通过线程完成多任务,进程也是可以的进程的状态 工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态。就绪态:运...

2019-08-17 21:01:04 396

原创 多任务----线程、同步、互斥锁、死锁

多任务 简单来说,就是同时进行多个任务,比如一边上班一边刷手机,咳咳。。。一边唱歌,一边跳舞,一边打篮球,一边还偷瞄旁边的妹子,嗯,这都是多任务。罗宾的技能,以及千手观音,哪吒三头六臂。通常的程序是这样式儿的:# 顺序执行(非多任务)from time import sleepdef work(): for i in range(3): ...

2019-08-16 15:57:39 678

原创 网络编程基础-------计算机网络快速一览

目录基本概念网络分类网络体系结构IP协议 IP地址及相关 关于地址转换端口网络编程的基础是计算机网络,计算机网络可以展开讲很多,这里只是 概括的讲述计算机网络体系的基本知识。基本概念计算机网络 通信的链路(分为有线/无线链路)连接到一起的一组计算机/设备的集合,通信技术与计算机技术的产物。以太网、因特网、互联网、...

2019-08-15 09:28:58 801

转载 正则-------Python re模块

什么是正则?假如现在你用python写一段代码,类似:phone_number = input('please input your phone number : ')你怎么判断这个phone_number是合法的呢?根据手机号码一共11位并且是只以13、14、15、16、17、18、19开头的数字这些特点,用python写如下代码:判断手机号码是否合法:# 方法1...

2019-08-06 17:42:02 412

转载 Python加密之hashlib、hmac

Python中的用于加密的函数位于hashlib,hmac模块中,均为内置模块。import hashlib import hmachashlib模块实现了md5,sha1,sha224,sha256,sha384,sha512等算法,可以通过hashlib.algorithms_available查看>>> import hashlib>>> ...

2019-07-27 18:45:50 654

原创 Shell基础篇

1 shell简介在计算机科学中,Shell就是一个命令解释器。shell是位于操作系统和应用程序之间,是他们二者最主要的接口,shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具。1.1 shell的分类基本上shell分两大类:图形界面shell和命令行sh...

2019-07-22 16:06:55 575

转载 单点登录 (SSO)

单点登录(SSO) 英文全称Single Sign On,人话:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。如图所示,图中有4个系统,分别是Application1、Application2、Application3、和SSO。Application1、Application2、Application3没有登录模块,而SSO只有登录模块,没有其他的业务模块,当App...

2019-07-19 11:49:23 479

转载 可扩展的事件复用技术:epoll和kqueue

什么是事件复用技术假设你有一个简单的web服务器,并且那里已经打开了两个socket连接。当服务器从两个连接那里都收到Http请求的时候,它应该返回一个Http响应给客户端。但是你没法知道哪个客户端先发送的消息和什么时候发送的。BSD套接字接口的阻塞行为意味着,如果你在一个连接上调用recv()函数,你就没办法去响应另外一个连接上的请求。这时你就需要I/O复用技术。 I/O复用技术的一个直接方...

2019-07-18 16:37:28 288

转载 数据结构之二叉树及其Python实现

目录二叉树二叉树的基本概念二叉树的性质(特性)二叉树的节点表示以及树的创建二叉树的遍历深度优先遍历广度优先遍历(层次遍历)二叉树二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1: 在二叉树的第i层上至多有2^(i-1)个结点...

2019-07-10 15:20:09 382

转载 Ubuntu MySQL安装、初始密码修改

转自:https://www.cnblogs.com/roadofstudy/p/7446690.html最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入root用户密码,在网上找了一天解决方案,试图修改root用户下的登入密码,但是网上的帖子都不凑效,最后终于改成功了,因此记下来以供有同样需要的人参考。1、安装$ sudo apt-get install mysql...

2019-07-09 21:32:09 399

转载 HTTP快速一览

本文是Scrat自己在学习中对相关教程的提炼总结,满满干货,闲话少叙,进入正题~一. 什么是HTTP?HTTP ------ Hyper Text Transfer Protocol(超文本传输协议)的缩写, 用于从服务器传输超文本到本地浏览器的传送协议。。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。简单提一下TCP/IP协议族:...

2019-06-30 11:45:48 674

转载 Python风格规范PEP8

分号不要在行尾加分号, 也不要用分号将两条命令放在同一行.行长度每行不超过80个字符例外:长的导入模块语句 注释里的URL不要使用反斜杠连接行.Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点. 如果需要, 你可以在表达式外围增加一对额外的圆括号.Yes: foo_bar(self, width, height, color=...

2019-06-19 10:34:59 1082

转载 Python时间模块小结(time and datetime)

表示时间的三种方式在Python中,通常有三种方式表示时间:时间戳,元祖(struct_time),格式化时间字符串。时间戳(timestamp):1970年1月1日00:00:00开始按秒计算的偏移量,type(time.time()) float类型 格式化时间字符串(Format String):'1999-12-06' 时间元组(stuct_time):共有9个元素(年月...

2019-06-17 17:42:14 405

原创 Nginx.conf 配置解析

nginx.conf主配置文件worker_processes 1; # 工作的进程数 ,根据cpu 核数events { worker_connections 1024; # 连接数}# http区域块,定义nginx的核心web功能http { include(关键字) mime.types(可修改的值); default_t...

2019-06-12 15:24:25 274

转载 Ubuntu18.04编译Nginx报错objs/Makefile:460: recipe for target 'objs/src/core/ngx_murmurhash.o' failed

在Ubuntu18.04上安装Ngnix,在编译步骤出现如下错误:cc1: all warnings being treated as errorsobjs/Makefile:460: recipe for target 'objs/src/core/ngx_murmurhash.o' failedmake[1]: *** [objs/src/core/ngx_murmurhash.o...

2019-06-12 02:06:26 3674 1

原创 Ubuntu apt-get update 没有 Release 文件

E: 仓库 “http://ppa.launchpad.net/fcitx-team/nightly/ubuntu bionic Release” 没有 Release 文件。Ubuntu18.4系统执行sudo apt-get update 后出现该错误。解决办法:在etc/apt/sources.list.d 目录中删除对应的ppacd /etc/apt/sources.lis...

2019-06-12 01:34:58 7016 8

转载 Python3 queue(队列)

队列是常见的数据结构,Python中对队列进行了模块级实现,本篇主要论述Python3中queue模块的基本使用。一.queue队列1.python3中的队列模块是queue,不是Queue2.一般涉及到同步,多线程之类用到队列模块3.定义了 queue.Queue 类,以及继承它的 queue.LifoQueue 类 和 queue.PriorityQueue 类 和 queue...

2019-06-09 15:47:32 953

转载 开发人员看测试之TDD和BDD

  Behavior Driven Development,行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。在了解Behavior Driven Development之前,先介绍Test-Driven Development(TDD)即测试驱动开发,它是一种测试先于编写代码的思想用于指导软件开发。测试驱动开发是敏捷开发中的一项核心实践和技...

2019-06-05 21:56:13 712

转载 Redis need tcl 8.5 or newer

scratkong@ubuntu:~/workspace/redis2.6.13/src$ make testYou need tcl 8.5 or newer in order to run the Redis testmake: *** [test] Error 1解决方案: wget http://downloads.sourceforge.net/tcl/tcl8.6.1...

2019-05-29 09:28:12 137

转载 集线器、网桥、交换机、路由器、网关大解析

source:https://www.tianmaying.com/tutorial/NetWorkInstrument 1 集线器 1.1 功能概述集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(一...

2019-05-26 10:12:45 722

转载 什么是 DNS,有什么作用?为什么需要更换公共DNS服务器?

基本上接触过网络相关知识的人应该多少都会听过 DNS 这个名词。因为它非常重要,在我们上网的过程中扮演着重要的角色—“将网址/域名解析成 IP 地址”。如果配置了不合理的 DNS 服务器,可能会导致网速缓慢、打不开网站;一些恶意的 DNS 还会让你电脑出现弹窗广告、网站被劫持修改 (中间人攻击)、监听等等一系列的安全问题。DNS 的全称是 Domain Name System 或者 D...

2019-05-22 17:22:14 21598

转载 SQL优化30条

一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间(3)数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的(4)禁止使用存储过程、视图、触发器、Event解读:高...

2019-05-18 15:16:41 317

转载 Ubuntu18.04 搜狗输入法选词区乱码

方法一:fcitx -r这个命令是重启fcitx框架。方法二:执行下面的命令时,可能会出现一些大型程序闪退。比如我的pycharm就是这样.pidof fcitx|xargs killfcitx &sogou-qimpanel &...

2019-05-17 10:17:31 819 1

转载 Python 上下文管理器(contextor)

最直观的上下文,莫过于小学的语文课,经常会问联系上下文,推测...,回答...,表明作者...。文章里的上下文比较好懂,无非就是前与后。在了解了计算机的执行状态,程式的运行,才稍微对计算机的上下文(context)有了一定的认识,多半还是只可意会,不可言传。本文所讨论的上下文,简而言之,就是程式所执行的环境状态,或者说程式运行的情景。提及上下文,就不可避免的涉及Python中关于上下文的魔...

2019-05-16 11:06:32 327

转载 Ubuntu 安装Mysql

1.安装ubuntu上安装mysql非常简单只需要几条命令就可以完成。  1.sudo apt-get install mysql-server  2. sudo apt-get install mysql-client  3. sudo apt-get install libmysqlclient-dev安装过程中会提示设置密码什么的(如果没有提示你设置密码,看这里...

2019-04-26 21:58:58 3341

转载 Werkzeug 与 WSGI 介绍

Werkzeug 是一个WSGI工具包,也可以作为一个Web框架的底层库。WSGI在介绍Werkzeug之前,先介绍一下 WSGI(Python Web Server Gateway Interface),它为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。这是一个规范,描述了web server如何与web application交互、web appl...

2019-04-02 15:05:51 663

转载 drop,delete与truncate的区别(删除表的方式,哪个快)

drop直接删掉表 truncate删除表中数据,再插入时自增长id又从1开始 delete删除表中数据,可以加where字句。用TRUNCATE替代DELETETRUNCATE不记录日志,DELETE记录日志,所以TRUNCATE要快于DELETE但是一旦用TRUNCATE进行删除就不能进行恢复, TRUNCATE是删除整张表的数据不能加where条件。(1) DELE...

2019-03-22 16:09:38 1127

转载 SQL中IN和EXISTS用法的区别

结论1. in()适合B表比A表数据小的情况2. exists()适合B表比A表数据大的情况当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用.select * from Awhere id in(select id from B)以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相...

2019-03-22 14:14:41 180

转载 Python程序的执行过程、解释型语言和编译型语言

转载地址:http://blog.csdn.net/lujiandong1/article/details/500676551. Python是一门解释型语言?我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写...

2019-03-21 14:22:43 232

转载 python学习之-- 动态导入模块

python动态导入模块方法1: __import__说明:  1. 函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。  2. __import__(module)相当于importmodule举例说明:首先创建一个模块目录lib,然后在目录内创建一个模块为:aa.py模块代码为:class c(object): def __str__(se...

2019-03-18 21:35:52 153

转载 详述银行卡支付方式

博主说:在众多的支付方式中,银行卡支付是一种比较常见的支付方式, 其包括线下支付和线上支付两种,线下支付就是常见的 POS 机支付;线上支付主要为网银支付和快捷支付等。本文主要讲述了银行卡支付的几种方式以及对接银行接口时需要着重注意的一些点。正文  说说大家比较熟悉的银行卡支付,它分为线上支付和线下支付两种形式。线下支付就是通常说的 POS 收单,这里不介绍这个内容。对线上支付,按照卡...

2019-03-18 20:48:21 3676

空空如也

空空如也

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

TA关注的人

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