自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 MySQL-锁

锁的作用用于管理对共享资源的并发访问,保证数据库的完整性和一致性按粒度分类行锁和表锁粒度小的优缺点:- 好处:锁定的数据量越少,发生锁争用的可能就越小,系统的并发程度就越高;- 坏处:系统开销大(加锁、释放锁、检查锁的状态都需要消耗资源)在选择锁的粒度时,需要在锁开销和并发程度之间做一个权衡。按类型分类1.读写锁概念互斥锁(Exclusive) 简写为 X 锁,又称写锁。共享锁(Shared) 简写为 S 锁,又称读锁。规则一个事务对数据对象 A 加了 X 锁, 就可以对 A

2021-07-25 16:08:04 134

原创 MySQL-事务

概念事务指的是满足 ACID 特性的一组操作;以BEGIN TRANSACTION开始,以ROLLBACK/COMMIT结束。ACID名称说明原子性要么全部成功,要么全部失败回滚。回滚可以用回滚日志(Undo Log)来实现; 回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。一致性数据库在事务执行前后都保持一致性状态。隔离性多个事务彼此之间是完全隔离,互不干扰。一个事务所作的修改,对其他事务是不可见的,好似串行执行。隔离性最终目标也是保证

2021-07-25 15:34:09 97

原创 《相关性搜索:利用solr与ElasticSearch创建智能应用》的实践

可能会持续更新目标:根据书中的方法,完善搜索,并尽力提高搜索相关性。使用ElasticSearch版本:6.8.x使用elasticsearch-py,是官方低层级封装py包github地址:https://github.com/elastic/elasticsearch-py文档地址:https://elasticsearch-py.readthedocs.io/en/6.8.2/index.html使用数据:Enterprise-Registration-Data,需要数据可以私聊我中文分

2021-03-21 23:11:24 308

原创 win10-wsl2-docker-elasticsearch

在win10上用wsl通过docker安装并启动elasticsearch安装wsl21. 启用子系统和虚拟机功能,然后重启Win+x 管理员打开PowerShell,并运行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform

2021-01-17 01:29:50 925

原创 Python装饰器

Python装饰器装饰器能把被装饰的函数替换成其他函数装饰器在加载模块时立即执行,而被装饰器的函数只在明确调用时运行叠放装饰器(多个装饰器)把 @d1 和 @d2 两个装饰器按顺序应用到 f 函数上,作用相当于 f = d1(d2(f))参数化装饰器创建一个装饰器工厂函数,把参数传给它,返回一个装饰器,然后再把它应用到被装饰函数上wraps作用:消除装饰器对原函数的影响原理:partial对象和update_wrapper函数实现对原函数的相关属性进行拷贝参考:https://do

2021-01-03 15:53:24 153 3

原创 Python内置数据结构

Python内置数据结构和算法名称语言内置内置库线性结构list(列表)/tuple(元组)array(数组)/ collections.nametuple(具名元组)链式结构collections.deque(双端队列)字典结构dict(字典)collections.Counter(计数器) / OrderDict(有序字典)集合结构set(集合) / frozenset( 不可变集合)排序算法sorted二分算法bisect模

2021-01-03 15:31:11 165 4

原创 Python函数与类

Python函数可变/不可变类型做为函数参数Python的函数传递是对象引用函数传入参数时:可变对象,直接修改,影响函数外部参数不可变对象,创建新对象,不影响函数外参数内置可变对象:list/ set/ dict内置不可变对象:bool/ int/ float/ tuple/ str/ frozensettuple元组tuple本身是不可变,元素依然可变不可变指保存的引用不可变Python一切皆为对象可变对象作为默认参数默认参数只计算一次如果修改了参数,默认

2021-01-02 18:09:21 250

原创 Python 2/3 差异点

Python 2/3 差异点内容python2python3print关键字函数编码默认ASCII默认utf-8(unicode)除法结果是int整除结果是浮点数,整除是 //字符串问题字节串是给机器看的unicode是给人看的python2中字符串两个类型:unicode-文本字符串和str-字节序列python3中 str-字符串,byte-字节序列Python3 改进类型注解(type hint),提示>>&gt

2021-01-02 16:40:41 269 1

原创 Gunicorn + gevent + flask + sqlalchemy + scoped_session 高并发解决方案

Gunicorn + gevent + flask + sqlalchemy + scoped_session 高并发解决方案Gunicorngunicorn 是wsgi http server,也就是web sever它的作用: 多进程(woker) + 协程(gevent) + 管理web应用(flask)geventgevent是第三方库,通过greenlet实现协程Gunic...

2019-12-25 16:10:16 1498

原创 Gunicorn-配置参数

config参数名参数内容默认-c , --configconfig_fileNone配置文件路径,路径形式的字符使用config参数及配置文件启动,例子:gunicorn -c gunicorn.conf manager:app配置文件中的参数bind参数名参数内容默认bindip:port[‘127.0.0.1:8000’...

2019-11-15 12:58:40 8786

原创 Python Flask_caching-缓存

Python Flask_caching-缓存安装:pip install Flask-Caching初始化使用演示# app.pyapp = Flask(__name__)cache = Cache(app, config={'CACHE_TYPE' : 'simple'})app.extensions['cache_key'] = cache# ***.py# 调用 .c...

2019-11-08 19:39:54 2373

原创 Python dict-字典

Python dict-字典映射(mapping)结构,基于哈希表存储键值对数据key必须是可哈希类型哈希冲突时,采用开放寻址法散列表是一个稀疏数组。1/3表元为空,因此空间效率低散列表里元素通常叫做表元(bucket)散列值获取散列值内置类型 hash()自定义类型,重写__hash__。两个对象相等,那么散列值必须相等。自定义类型,重写__eq__散列值保证索引空间中...

2019-10-12 22:18:51 217 1

原创 Python list-列表

Python list-列表列表的内部结构头部保存元素数量,内存分配计数独立数组存储元素指针操作时间复杂度操作时间复杂度复制O(N)添加元素(在尾部添加)O(1)插入元素(在指定位置插入)O(N)获取元素O(1)修改元素O(1)删除元素O(N)遍历O(N)获取长度为k的切片O(k)...

2019-10-12 22:02:36 222

原创 Python爬取淘宝搜索页,使用Selenium+BeautifulSoup

使用Selenium驱动chrome页面,获得淘宝信息并用BeautifulSoup分析得到结果 使用Selenium时注意页面的加载判断,以及加载超时的异常处理import jsonimport refrom bs4 import BeautifulSoupfrom selenium import webdriverfrom selenium.common.exceptions impo

2017-10-08 19:48:51 1478

原创 Python爬取今日头条搜索的照片。使用requests+正则表达式

爬取网页:http://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D1,分析爬取页面,找到页面信息在Chrome按F12打开开发者工具,查找网页内容的请求位置 找了doc中发现内容都是加载,查看JS内容页面内容无关。 在XHR中发现到我们想要的内容,页面内容是通过ajax加载进来的 查看Headers,可以得到Request URL和

2017-10-07 18:48:16 1150

原创 requests+正则表达式爬猫眼电影TOP100

爬取地址:http://maoyan.com/board/提示:很抱歉,您的访问被禁止 需要伪装浏览器,在headers中添加’User-Agent’字典内容 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko

2017-10-06 19:54:33 1019

原创 Python爬虫Selenium使用

官方文档: http://selenium-python.readthedocs.io/installation.html#introduction声明浏览器对象Seleninum支持很多浏览器,但是如果系统中浏览器不存在就会报错from selenium import webdriver # 引入webdriver包browser = webdriver.Chrome() # 声明

2017-10-05 20:33:07 2463

原创 Python爬虫Selenium安装

安装Seleniumpip install seleniumChromedriver https://sites.google.com/a/chromium.org/chromedriver/downloads 进入页面,找到最后发布版本 转到: https://chromedriver.storage.googleapis.com/index.html?path=2.

2017-10-05 20:05:56 3593

原创 Beautiful Soup-学习笔记

使用CSS选择器 CSS选择器:[http://www.w3school.com.cn/cssref/css_selectors.asp] Beautiful Soup文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/基础用法html='''<div class="panel"> <div class="p

2017-10-04 23:29:47 268

原创 正则表达式-学习笔记02

re.searchre.search 扫整个字符串并返回第一个成功的匹配content = 'Extra Stings Hello 1234567 World_This is a Regex Demo Extra Stings'result = re.match('Hello.*?(\d+).*?Demo',content) # 从开头开始匹配print(result)Noneresu

2017-10-04 16:42:13 238

原创 正则表达式-学习笔记01

什么是正则表达式? 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定的字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 模式 描述 \w 匹配字母数字及下划线 \W 匹配非字母数字及下划线 \s 匹配任意空白字符,等价于 [\t\n\r\f]. \S 匹配任意非空字符 \d 匹配任

2017-10-04 16:31:54 272

原创 大学英语四级电子照片修改过程。

某地方的四级电子照片要求: 1)背景布布选取浅蓝色 2)成像要求:要求上部空1/10,头部占7/10照片尺寸192*144(高*宽) 3)文件格式:Jpg,占用空间大小8KB,图像文件名为身份证号.jpg使用软件: Photoshop CC win 画图 在线图片格式转换https://tinypng.com/修改流程: 获得一寸照电子版,用PS打开。新建图片(19

2017-09-19 09:59:50 20924

原创 LintCode 4.丑数 II

设计一个算法,找出只含素因子2,3,5 的第 n 大的数。 符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12… 注意事项 我们可以认为1也是一个丑数 样例 如果n = 9, 返回 10思路:由题目的要求可知:找到出 2, 3, 5倍数的数。并排序。直到到第n个数定义一个数组存放丑数,1是已知的丑数。 从2,3,5中挑选最小的添加

2017-09-07 13:43:25 729

原创 LintCode 3.统计数字

计算数字k在0到n中的出现的次数,k可能是0~9的一个值样例 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)public int digitCounts(int k, int n) { int count = 0; //循环从n->0,每个数和k比较

2017-09-06 22:41:17 366

原创 LintCode 2.尾部的零

设计一个算法,计算出n阶乘中尾部零的个数样例11! = 39916800,因此应该返回 2思路:1 * 2 * 3 * 4 * ......* N中每一个因数分解因子,结果:1 * 2 * 3 * (2 * 2) * 5 * (2 * 3) *7 * (2 * 2 *2) *......10进制数结尾每一个0都是因数10存

2017-09-06 15:31:41 366

原创 LintCode 1.A + B 问题

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 注意事项你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。思路:把加法拆分为:相加->异或运算进位->与运算将得到的结果(相加的结果和进位)再做同样的操作(相加),直到进位为0,递归完成。异或运算:不同为

2017-09-05 23:35:31 287

原创 LintCode 回文数

判断一个正整数是不是回文数。回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。 注意事项给的数一定保证是32位正整数,但是反转之后的数就未必了。11, 121, 1, 12321 这些是回文数。23, 32, 1232 这些不是回文数。public class Solution { /*

2017-08-30 19:40:37 227

原创 LintCode 字符串置换

给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。置换的意思是,通过改变顺序可以使得两个字符串相等。您在真实的面试中是否遇到过这个题? Yes样例"abc" 为 "cba" 的置换。"aabc" 不是 "abcc" 的置换。public class Solution { /*

2017-08-30 18:51:30 256

空空如也

空空如也

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

TA关注的人

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