- 博客(62)
- 资源 (14)
- 收藏
- 关注
原创 MongoDB删除数据后释放磁盘空间
由于mongodb的机制,通过remove删除collection中的数据后,磁盘空间并没有得到释放,想要释放空间需要删除数据库官网上说可以使用db.repairDatabase(),但这会导致停机,并且需要足够的磁盘空间(我们该服务器的磁盘占用98%),但是我在使用了该命令后,还是释放了3GB资源出来,我没深究这个问题以下操作在Mongo 命令行中执行,最好使用有admin权限的账户db....
2019-10-15 10:47:05
2669
原创 抓包工具charles的安装和配置
教同事使用charles抓包测试,本篇中主要是安装和配置下载安装地址: https://www.charlesproxy.com/download/配置Proxy -> Proxy Settings默认的端口8888,由于在我的电脑上被占用,所以改为了8899Proxy -> SSL Proxy Settings , 抓取https的请求安装证...
2019-08-26 13:41:54
455
转载 不停止MySQL服务增加从库的两种方式
现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库。前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作。一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长。另一种是通过xtrabackup工具备份主库...
2019-08-01 20:49:58
610
原创 在vscode中显示空格和tab符
效果设置中修改文件->首选项->设置,搜索框中输入render,找到下图中的内容并修改在settings.json中配置在.vscode文件夹中的settings.json文件中添加如下代码: "editor.renderControlCharacters": true, "editor.renderWhitespace": "all"如果没有则创建这些文件...
2019-07-17 10:37:53
13021
2
原创 shell脚本实现猜数字游戏
学习shell的基本语法声明一个要猜的数字num获得命令行中输入的内容input_num然后判断num和input_num是否相等、偏大或偏小相等:退出循环偏大或偏小:告知循环执行需要的shell知识变量的声明和使用读取输入内容shell中字符串和数字的比较while语法根据需求写出如下代码#!/bin/bashnum=56while :do...
2019-07-14 16:37:23
3122
1
原创 git stash的简单应用
日常开发中,如果使用git的话,可能会因为忘记切换分支,在做完更改之后发现无法切换分支(如下图所示),提示需要先将当前分支的修改进行提交。git提供了stash功能执行git stash save "test-dev"命令然后就可以切换分支了接着执行git stash list,可以查看到刚才我们进行stash的记录执行git stash pop将之前的stash应用到当前分支(如下图...
2019-03-25 19:06:36
498
原创 MySQL 格式化日期(DATE_FORMAT)
函数说明:DATE_FORMAT(date,format)date参数,传入一个日期类型的字段format参数,日期类型例子:--把当前时间转换为yyyy-mm-dd HH:MM:SS的格式DATE_FORMAT(NOW(), "%Y-%m-%d %H:%i:%s")format参数类型:参数说明%a缩写星期名%b缩写月名%c月,数值...
2019-01-12 22:09:23
13196
原创 关于HTTPs
由于HTTP有以下安全问题使用明文进行通信,内容可能会被窃听不验证通行方的身份,通行方的身份可能遭遇伪装无法证明报文的完整性,报文有可能遭到篡改 https协议并不是新的协议,而是让HTTP先和SSL通信,再由SSL和TCP通信。 通过使用SSL,https具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)的安全机制。1. 加密方式首先介绍常见的两种加密方式...
2018-07-08 20:32:38
308
原创 使用scrapy-redis实现分布式
要实现分布式,主机之间需要共享爬取队列和去冲击和,scrapy_redis就是将request调度队列、请求队列和获取的item放在了一个多台主机可以同时访问的Redis数据库中。配置 剖析源码的工作请根据需要自行学习,直接给出settings中的配置。一、必要配置以下配置是scrapy_redis实现分布式的核心1. 配置调度器和去重类这个选项是必须要进行配置的...
2018-07-07 14:34:22
723
原创 Django REST框架——快速指南
Django REST框架是一个用于构建Web API的功能强大且灵活的工具包。 django版本1.11起步首先使用pip安装需要的包pip install djangorestframeworkpip install markdown pip install django-filter 然后创建项目django-admin startproject r...
2018-07-06 17:59:25
2931
原创 MySQL存储引擎MyISAM和InnoDB的区别
这两个存储引擎比较常用,这个问题也很常见,列出来以供参考 - MyISAM InnoDB 存储结构 每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 所有的表都保存在同一个数据文件中(也可能是多个文件...
2018-07-05 11:09:51
337
转载 微信公众号文章采集方案
方案一:基于搜狗入口 在网上能搜索到的公众号文章采集相关的信息来看来看,这是最多、最直接、也是最简单的一种方案。 一般流程是:搜狗微信搜索入口进行公众号搜索选取公众号进入公众号历史文章列表通过文章列表获取文章链接,通过文章链接获取文章内容对文章内容进行解析入库 采集过于频繁的话,搜狗搜索和公众号历史文章列表访问都会出现验证码。直接采用一般的脚本采集是无法拿到验证码的。这...
2018-06-27 09:49:04
1976
原创 使用smtplib模块发送邮件
在使用django/flask时,框架本身已经为我们封装好了发送邮件的函数,python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。对于smtp的使用相对来说比较简单,代码如下:一、发送文本内容直接使用smtplib发送文本内容,以下两步是使用smtplib发送任何形式邮件都可以遵循的。1. 准备工作构建邮件内容, From(发...
2018-06-22 16:15:10
3593
原创 单例模式(Python实现)
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。起步 在实现单例模式之前,先介绍使用到的知识点1. __new__ __init__方法通常用在初始化一个类实例的时候。但是__init__其实并不是实例化一个类的时候第一个被调用的方法,最先被调用...
2018-06-19 19:49:34
782
原创 快速排序
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个元素要O(nlogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环可以在大部分的架构上很有效率地被实现出来。快速排序使用分治策略(Divide and Conquer)来把一个序列分为两个子序列。步骤为:从序列中挑出一个元素,...
2018-06-14 11:25:18
314
原创 Python垃圾回收机制
Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。1. 引用计数 PyObject是每个对象必有的内容,其中ob_refcnt就是做为引...
2018-06-13 20:52:37
260
原创 Python字典
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。一、创建字典 字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:1. 直接创建dict = {'a': '1', 'b': '2', 'c': '3'}也可如此创建字典dict1 = { 'abc': 456 }dict2 = { 'abc'...
2018-06-12 22:22:01
286
原创 使用charles抓取https请求
抓包需要在设备在同一网段下才可以进行(如同一局域网、同一wifi下),在本篇中使用了模拟器进行的测试1. 安装证书 如果你需要抓取 https 协议相关的内容。那么首先需要安装 Charles 的 CA 证书。具体步骤如下: 首先我们需要在电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” –> “SSL Proxying” –> “Install...
2018-06-11 21:16:41
1030
原创 Python闭包和装饰器
装饰器和闭包都是python函数式编程中提供的语法函数的实质和属性函数是一个对象函数执行完成后内部变量回收函数属性函数返回值函数作用域的LEGB原则L:local函数内部作用域 E: enclosing函数内部与内嵌函数之间 G: global全局作用域 B: build-in 内置作用域Python 闭包概念: Closure: 内部函数中对encl...
2018-06-07 08:58:10
756
翻译 Git Cheat Sheet——Git的常用命令和最佳做法
国外网友制作的Git Cheat Sheet,已经翻译为中文,描述了常用的Git命令和使用git的最佳做法 我对翻译后的文案加上序号和格式的调整 建议记下它们,如果你使用git一、常见命令1. 创建克隆现有的存储库 $ git clone ssh://user@domain.com/repo.git创建新的本地存储库 $ git init ...
2018-06-06 14:39:17
8499
原创 Git命令及说明
GIT常见命令GIT常见命令1. 基本命令初始化git仓库添加文件查看工作区状态查看修改内容切换版本查看提交历史查看命令历史丢弃工作区的修改丢弃暂存区的修改删除文件:关联远程库克隆远程库2.分支管理查看分支:创建分支:切换分支:创建+切换分支:合并某分支到当前分支:删除分支:查看分支合并图:储藏你的工作bug分支feature分支查看远...
2018-06-06 10:51:54
895
原创 负载均衡——nginx反向代理
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。实现负载均衡的策略有反向代理、HTTP重定向和DNS负载均衡,在本文中主要介绍基于nginx的反向代理负载均衡。引言我们首先要知道什么是反向代理负载均衡? 反向代理服务器是一个位于实际服务器之前的...
2018-06-06 08:53:25
1165
原创 jinja2变量过滤器
前言 Django和Flask框架中都使用了jinjia2模板引擎来渲染模板,通过后端向模板中传递变量,通过过滤器可以修改这些变量,过滤器添加在变量名之后,中间使用竖线分割。 例如:把值的首字母转换为大写,其他字母转换为小写{{ name|capitalize }}下表列出jinjia2部分的常用过滤器 过滤器 说明 safe 渲染时不转义 ...
2018-06-05 12:54:43
4854
原创 Linux常见命令
Linux系统的命令是很多的,记住全部可能有一定难度,因此记下一些常见的命令是必要的,只描述大概的作用就能帮助使用Linux,如需深入了解还请参考其他文献。chgrp改变文件所属的群组chown他还可以顸便直接修改群组的名称chmod用于改变文件或目录的访问权限。该命令有两种用法:用包含字母和操作符表达式的文字设定法 chmod [who] [opt] [m...
2018-06-04 22:15:36
915
原创 Linux用户管理
1. 添加用户 在Linux系统中,只有root用户才能够创建一个新用户,执行以下命令就会新建一个登录名为test的用户:sudo useradd meelo 但是此时该用户还不能够登录,因为还没有给它设置密码,没有密码的用户是不能够登录系统的。 你还应该使用passwd命令为其设置一个初始密码。输入该命令后,会系统会请求输入密码。sudo passwd test...
2018-05-31 17:50:11
909
原创 利用elasticsearch实现搜索引擎
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二最流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。起步1. 安装jdk 由于elasticsearc...
2018-05-30 23:29:47
9872
原创 Django配置xadmin后台管理
xadmin是基于Django的admin开发的更完善的后台管理系统,基于Bootstrap开发,拥有更自由化的页面管理。起步安装xadmin,下载地址:https://github.com/sshwsfc/xadmin,下载后进入文件夹内,按shift+右键,选择在此处打开命令窗口,输入python setup.py install 安装xadmin,安装时会自动下载依赖包,等...
2018-05-21 23:31:50
7121
原创 Ubuntu下安装Python环境
ubuntu本身是有Python2.7版本的,但是不同版本的ubuntu中的Python3版本是不同的,我现在用的是14版本是python34,我想把它升级为36版本。如果需要,你可以改为任意版本的。1. 首先安装python36 在终端中输入下面的命令(不要怀疑,每行都是一个命令) wget http://www.python.org/ftp/python/3.6.4/P...
2018-05-18 20:28:54
59827
5
转载 git使用规范流程
团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。下面是ThoughtBot 的Git使用规范流程。我从中学到了很多,推荐你也这样使用Git。第一步:新建分支首先,每次开发新功能,都应该新建一个单独的分支(这方面可以参考《Git分支管理策略》)。# 获取主干最新代码$ git che...
2018-05-18 15:49:48
914
翻译 兴趣使然的一些链接
排序算法常用算法总结(1) https://www.cnblogs.com/eniac12/p/5329396.html#s6王垠的博客http://www.yinwang.org/Django进阶深入理解Django中内置的用户认证_python https://edu.aliyun.com/a/2258爬虫实例如何快速掌握Python数据采集与...
2018-05-17 10:59:38
1045
原创 django分页(Paginator)
有的时候我们会在页面中展示大量数据,全部都放在一页可能会降低用户体验,Django提供了一个Paginator类来帮助我们管理分页数据。起步介绍分页器对象的一些属性和方法1. 引入该类及相关异常模块:from django.core.paginator import Paginator, PageNotAnInteger, EmptyPagePaginator:...
2018-05-08 12:02:10
12464
原创 django注册登录
如果只是在数据库中创建一个用户表来实现注册登录,简单的实现会单一而薄弱,而django自带的用户表只用来登录后台,那么它的一系列验证机制就无太大用武之地了,所以,这里所说的注册登录使用django自带的用户表。django版本1.11一、创建用户表可以直接使用django的用户表,但是往往还需要重新定义用户模型,因为默认的用户表中的字段未必能满足我们的需要,引入Abstract...
2018-05-06 12:56:04
4211
原创 从settings文件建立django开发索引
django项目的开发过程中,在对整个框架不够了解之前,内容仅靠模糊的记忆可能会导致一系列的未知问题(例如一个字母写错)。 全局配置文件settings中的配置,往往可以映射整个项目所需要的内容。 (django版本1.11)默认的配置 其实不算是默认的,只是在创建项目之后,已经为我们写了一些配置(当然,你可以在保证正确的前提下随意更改它们的顺序),在它的基础上进行更...
2018-05-05 08:46:31
2107
1
原创 python虚拟环境
为什么使用虚拟环境? 虚拟环境是Python解释器的一个私有副本,在这个环境你可以安装私有包,而且不会影响系统中安装的全局Python解释器。 虚拟环境非常有用,可以在系统的Python解释器中避免包的混乱和版本的冲突。为每个程序代码地创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建虚拟环境的源。使用虚拟环境不需要管理员权限。创建虚拟...
2018-05-03 20:18:58
2413
原创 django的ORM操作MySQL数据库
1.配置 在应用之前要先进行配置,因为生成django项目之后默认的数据库不是mysql(1)配置数据库修改settings文件中的DATABASES 默认的状态:DATABASES = {'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_D...
2018-05-02 08:45:56
3970
原创 HTML中CSS样式的优先级
css样式的优先级基于它的继承性。在此篇没有提及标签选择器和通配符选择器,但它们的优先级很低,仅高于body! 并且所介绍的都是单个选择器的优先级,因为组合型的选择器就是单个选择器优先级的累加。css样式的优先级在本篇中按从低到高的顺序排列,就是目录的顺序CSS中body的样式body样式的覆盖(class会覆盖body中的样式)多个class处理样式覆盖通过ID的样...
2018-04-24 12:53:10
12687
原创 HTTP请求方法
请求方法即在HTTP中与服务器交互的方法,请求方法有多种,最常用的是get和post请求,其他请求一般在某些特定场合使用。1. 各种请求方法列举http中的请求方法: 请求方法 简介 GET 向特定的资源发送请求,获得响应主体 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传数据)。数据被包含在请求体中。POST请求可能会导致...
2018-04-18 11:40:52
2427
原创 常用SQL语句
SQL语句分为数据的操作和表结构的操作,确定自己的需求检索自己需要的SQL语句。 列出一些SQL操作中的注意事项供大家参考: 注意事项 同一个建表语句中,可以有多个主键,但PRIMARY KEY关键字只能出现一次 AUTO_INCREMENT在一张表中只能应用于一列,并且这一列属于主键 OR可以和AND一起使用,但是在使用时注意两者的优先级,由于AND的...
2018-04-15 15:03:58
1565
原创 MySQL 数据库常用函数
MySQL内置的函数有很多,总结一下常用的,但是聚合函数我并未贴在此处1. 数学函数 函数 说明 ABS(x) 返回x的绝对值 CEIL(x) 返回不小于x的最小整数值即向上取整,返回值转化为一个BIGINT FLOOR(x) 返回不大于x的最大整数值即向下取整,返回值转换为一个BIGINT ROUND(x) 返回最接近于参...
2018-04-15 14:13:15
1479
cheat sheet.zip
2020-01-03
fiddler2版本及其证书
2018-06-26
python包twisted
2018-05-28
Xshell5终端模拟器已激活
2018-05-24
jTessBoxEditorFX可识别中文
2018-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人