- 博客(43)
- 收藏
- 关注
原创 排序算法(下)
'''希尔排序:gap步长的概念,根据gap把alist分成多个部分,子list,分别进行插入排序过程即alist=[1,2,3,4,5,6,7,8,9,10] gap=4分成 (1)1,5,9 (2)2,6,10 (3)3,7 (4)4,8 分别插入排序def shell_sort(alist): n = len(alsit) gap = n // 2 步长初始取值 取...
2018-07-03 18:41:02 179
原创 排序算法(上)
'''冒泡排序:最大的数像水泡冒出来,排到最后,两个数比较如果前边的数大于后边的那换位置def bubble_sort(alist): 顺序表 # 列表长度 n = len(alist) # 控制次数,总共冒泡了n-1次, for j in range(n-1): # 控制每次,用索引拿出alist的每个元素比较,关键就是当前的次数决定需要比较的索引个数 n...
2018-07-03 18:40:24 262
原创 shell使用(下)
thing = 'shell''''7.流程控制if语句:if 条件then 指令else 指令fi (闭合)多if:if 条件then 指令elif 条件then 指令else 指令ficase语句:case 变量 in value1) 指令1 ;; (命令分隔) value2) 指令2 ;;...
2018-07-02 09:36:32 258
原创 shell使用(上)
'''1.shell命令(变量)$:声明一个变量echo 显示 echo $SHELL 显示shell路径bash 执行.sh的shell文件 bash first_shell.shlinux发行版: ubuntu centos(yum install ) redhat kali渗透测试,黑客攻击软件预安装,可以玩一下脚本:单行注释 : # 多行注释 : :<<!...
2018-07-02 09:35:33 478
原创 python爬虫-scrapy-redis分布式
'''10.scrapy-redis分布式组件分布式:多台机器协同完成,提高效率缩短时间scrapy-redis组件和普通scrapy的区别:(1)引擎和下载器没变化(2)每个分布式的爬虫是共同完成一个任务,每个爬虫的调度器和redis数据库相连,redis中有对url的去重和 url的队列,start_url是随机分配给一个爬虫文件开始执行,然后响应中新解析出来的url通过调度器放到redis中...
2018-06-14 23:12:51 529
原创 python爬虫-scrapy框架
'''1.简述之前自定义的爬虫,都是相似的过程,请求url,解析响应,保存数据,相同的逻辑,框架实现了封装结构,避免重复的逻辑,只关注不同点,针对不同的网站解析方法不同,而且不同的业务需求保存的方式也不同,所以只关注这些部分,scrapy的性能优越底层使用twisted自定义协议框架来写的而且实现分布式爬虫简单框架结构:Scrapy Engine: 中间商,核心引擎,其他部分都是通过引擎中转的Sc...
2018-06-12 17:18:22 379
原创 mongodb数据库(下)
'''7.条件查询db.集合名.find()db.集合名.findOne(查询条件) 单条查询db.集合名.find().pretty() 对查询结果美化比较运算$lt 小于$lte 小于等于$gt 大于$gte 大于等于$ne 不等于db.集合名.find({key:{$lt:n}})逻辑运算and:db.集合名.find($and:[{key1:'value1'},{key2:'value2...
2018-06-06 10:10:49 325
原创 mongodb数据库(上)
''1.简述mongodb是文档型的数据库 即储存的数据格式称作文档,底层是用js来写的,所以是符合js语法的 大{}格式面向文档(分布式文件储存)的NOSQL型数据库,mongodb同时操作内存和硬盘,内存缓存然后储存到硬盘中mongodb三要素数据库:有不同的数据库 database集合: mysql的表 就是mongodb中的集合 collection文档: 实际数据储存成文档documen...
2018-06-06 10:09:59 336
原创 正则表达式(下)
4. 注意问题例如:匹配163邮箱@163.com 中有个点 如果跟正则表达式中的限制符号冲突了 为了让正则识别我的点就是普通的点而不是限制符号 使用 转义符号: \ 写成@163\.com比如要匹配的内容有 \ ,如果你在正则中写 \,会被识别成转义符号这时候就要写 \\ 可以理解成 第一个\是转义符号 第二个\就是它本身重...
2018-06-04 16:24:14 332
原创 正则表达式(上)
正则表达式让机器 严格 按照我给的正则表达式(限定条件),来寻找(抓取)符合我要求的内容Import re变量 = re.match( ‘正则表达式’ ,’抓取的信息’ )获取:print(变量.group())1.匹配单个字符:匹配 一个 字节位置,下列的符号只表示这一个字节位置上是什么,没有带数量的限制符号# . 匹配任意1个字符(除了\n)# [ ] 匹配[ ]中列举的字符 ...
2018-06-04 16:22:58 279
原创 python爬虫(3)
'''1.多线程使用消息队列 queue来通信,把每个方法得到的数据放到消息队列中,每个方法就可以当做一个子线程开启,线程间使用queue来通信,即 put()放入,get()拿出,以前run函数中一套流程下来只是单线程,注意,使用while True就能保证线程始终执行,使用task_done()来保证主线程等待子线程的所有消息队列执行完,4个函数 生成url列表,请求,解析,保存,所以需要3个...
2018-06-02 23:51:05 339
原创 python爬虫(2)
thing = '爬虫解析''''1.数据分类非结构化:html和文本 解析:re和xpath结构和:json和xml 解析:json模块->python字典json模块:json肯定是一个字符串,这个字符串中是个字典 即' { } 'json转换json -> python的dict loads 加载成字典''''''2.正则re可是使用创建对象的方法...
2018-06-02 23:49:49 363
原创 协程
主进程的子进程,子进程有它自己的主线程,也就是说还可以开辟子线程迭代器 (__iter__方法:把类变成可迭代,方法里边创建迭代器和__next__方法:获取下一个值)生成器 结合列表推导式 g = (x * 2 for x in range(3)) 注意yield 和 return yield:代码执行到这个,看到yield暂停,等到再启动的时候执行yield后边的...
2018-06-01 14:02:14 1024
原创 进程
线程同步:使用join,其实只有一个线程执行udp端口占用有个立即释放 udp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEPORT,True)os模块除了文件夹操作还有什么,好像没有了暂时没看到线程共享全局变量,进程不共享全局变量,进程实际是在自己本身中拷贝了一个全局变量,自己做更改 所有线程有个Lock,进程没有Lock互相不影响线...
2018-06-01 14:00:11 389
原创 线程
并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的变量 = threading(模块).Thread(方法)(target=函数名,没有括号,name='给线程起的名字', 传参数 少用元组args=(1,) 注意格式...
2018-06-01 13:59:13 298
原创 linux命令(下)
5. grep 在文件里查找指定内容 格式 ‘内容’ 内容+引号-n 显示行数-v 取反(不包括这个内容的部分)-i 不区分字母大小写##查找东西的时候结合 通配符 (用的地方很多)^a : 以字母a开头的a$ : 以字母a结尾的[abc] : 分别以a b c 为名字的 a.txt b.txt...
2018-05-30 19:46:21 304
原创 Linux命令(上)
1.ls:(列表化)-a 显示隐藏文件-l 详细信息-h 文件大小(结合-l使用,看详细的大小)比较常用 ll = al针对 文件和文件夹的操作2.嵌套创建文件夹mkdir -p3.rm-i 交互信息,是否要删除-r 递归删除,包含文件也能删除-f 存在直接删除,不存在报错,把报错隐藏不显示-ir 递归删除,询问信息你试试 -r -i 格式不同效果:都是递归进入文件夹然后依...
2018-05-30 19:45:42 316
原创 python爬虫(1)
1.简述累积式爬虫:累积并去重增量式爬虫:增量式更新deep web:需要登录请求头:host 主机和端口Connection 链接类型Upgrade-Insecure-Requests 升级为httpsUser-Agent 身份Accept 接收的文件类型Referer 来源,用于防爬和防盗链(防止盗用链接,只允许按要求站内跳转)Accept-Encoding 支持编码类型 cookie''''...
2018-05-29 10:49:33 380
原创 python基础(7)
面向对象三大特性:封装、继承、多态属性私有: self.__money = 100 都是加两个下划线__方法私有: def __make_cook():父类里的私有不会被子类继承,而且调用的话只能父类在本身里边使用,在父类外边无法调用修改私有属性:类的外边无法修改 , 通过在类内部引入固定函数获取: get函数 : def get_私有属性名...
2018-05-29 10:46:47 311
原创 python基础(6)
'''面向对象编程关键词: 面向过程 面向对象 类 方法 对象 都是 类 里的类: 定义类=定义函数 class 类名(object): 其实就是python中提供的函数 类名:大驼峰(建议) # 一个函数定义在模块内 叫做函数 # 一个函数定义在类中 就叫做方法 方法:又叫 对象方法 ...
2018-05-26 13:20:55 342
原创 python基础(5)
'''文件相关操作文件: 所有的工作过程都是通过内存实现的,操作中使用内存,然后保存,执行内存储存到硬盘中(比如:U盘传东西,内容先进到内存然后写入硬盘)都是内置函数打开: 格式: open( '文件名字.文件格式' , 'w' 或者 'r') 里边是字符串来书写 文件格式:.txt .mp4 .mp3 .avi等等 ...
2018-05-26 13:18:20 331
原创 python基础(4)
'''引用:核心值变不变,是新的引用还是在老引用基础上变了,就看数据是可变还是不可变递归函数:函数可以嵌套,如果嵌套的自己,就是递归函数(实现阶乘),必须有停止条件类同循环匿名函数: 使用lambda代表匿名,就是简写形式 格式: lambda 参数 : 做什么 lambda 相当于 def 函数名 实际使用: 排序 (实现排序,...
2018-05-26 13:16:00 300
原创 python基础(3)
# 函数'''局部变量: 就是在函数内部定义的变量,其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的全局变量: 对全部函数起作用的变量, 当有全局变量 ,进行到del函数里有局部变量时,用局部变量的值,因为相当于重新赋值 这涉及到语法的执行等级上a = 100del 函数名( ) a = 300 这个函数里都取 a = 300 ...
2018-05-26 13:15:13 286
原创 python基础(2)
# 集合 集合中的元素是不重复的,每个位置的元素不重复,后台有重复,打印的时候前台自动去重 用途:列表元素去重时候,类型转换呗# 添加:add# update 和 extand 结果相同# 删除:remove 格式:集合名.remove(元素值)# pop 格式:集...
2018-05-26 13:10:38 710
原创 python基础(1)
# 基础变量的类型 1.str 2.bool 3.int 4.float# 基本元素# 字符串 str = ' ' 有序 不可改变# 列表 list = [ ] 有序 可以改变# 元组 tuple = ( ) 有序 不可改变# 字典 dict = { :, :}...
2018-05-26 13:05:51 244
原创 DRF框架(下)
'''1.request和responseDRF的request是Parser解析器处理过的请求request.data : POST,PUT,PATCH,表单,jsonrequest.query_params : ?后边的参数DRF的response是Renderer渲染器处理过的响应需要在settings中加入配置:REST_FRAMEWORK = { 'DEFAULT_RENDERER...
2018-05-25 13:37:22 4738
原创 DRF框架(中)
'''5.重写to_representation方法序列化器的每个字段实际都是由该字段的to_representation方法决定展示格式的,可以通过重写该方法来决定格式注意,to_representations方法不仅局限在控制关联对象格式上,适用于各个序列化器字段类型class BookRelateField(serializers.RelatedField): """自定义新的关联字段...
2018-05-25 13:36:15 2166 1
原创 DRF框架(上)
# 其实就是Django RESTful Framework# RESTful一种API的命名风格,主要因为前后端分离开发出现# 前后端分离: 用户访问静态文件的服务器,数据全部由ajax请求给到# RESTful风格:数据应该是名词,而动词由HTTP的请求方式来体现# RESTful风格的API给前端返回 结果对象,无论什么请求方式'''特点: 反复重复因为不论什么请求方式,都需要给前端返回对象...
2018-05-25 13:33:06 7945
原创 django-表单和admin站点
'''1.表单django内置表单的内容, 使用forms模块的Form类在单独的forms.py文件中创建表单类和创建模型类的方法很像, 然后视图类用到表单,实例对象就可以Form类中内置一些方法,提供我们使用比如:form = BookForm(request.POST) post上传的请求数据,通过自定义的表单类拿出 form.is_valid() 验证表单数据的合法性 form...
2018-05-21 11:29:38 436
原创 flask学习-数据库
thing = '数据库'# ORM : 对象-关系映射 模型对象到关系数据库数据的映射 模型类操作数据库不用手写sql语句'''1.Flask-SQLALchemy扩展 (依然是集成 ORM 通过对模型类的操作来操作数据库)安装扩展:(操作数据库的 你得有数据库啊)pip install flask-sqlalchemy安装数据库pip install flask-mysqldb实例:...
2018-05-20 12:53:22 352
原创 redis数据库(下)
6.list增: 左插入 lpush key value 右插入 rpush 指定元素的前或后插⼊新元素 linsert key before或after 现有元素 新元素 查: lrange key start stop 0 -1 是查询所有 设置指定索引位置的元素值 lset key...
2018-05-19 22:59:33 315
原创 redis数据库(上)
1.简述高性能key-value(储存格式)可以暂时储存在内存中,但是暂时储存会丢失nosql数据库(非关系型数据库)由服务端redis-server 和 redis-cli组成 先启动服务端3.命令切换数据库 select num (默认由16个数据库组成 num = 0-15)数据操作:1.redis是key-value的数据结构,每条数据都是⼀个键值对2.键的类型是字符串3.注意:键不能重...
2018-05-18 20:15:33 252
原创 flask学习-模板(下)
7.特有变量和函数模板语言,在函数中用render_template传到模板中,可以用变量和函数取一些值请求上下文: request 和 session应用上下文: 只有 g变量还有: config 和 url_for(可以作link) <a href="{{ url_for('index') }}">回到首页</a>消息闪现: get_flasked_massage...
2018-05-16 22:36:50 298
原创 flask学习-模板(上)
1.简述把数据库数据拿出来,塞到模板中就行,模板其实是一个包含响应文本的文件使用真实值(数据库) 替换变量(模板语言),再返回最终得到的字符串(return render_template方法),这个过程称为“渲染”render_template('模板名', key=value )1-1.{# 注释 #}1-2.{{变量代码块}} 可以任意写成python中的操作格式1-3.{% 控...
2018-05-09 20:00:13 307
原创 django学习-数据库(下)
5.数据库操作5-1.查询(1)F对象 对象的属性与常量值比较,不需要用F对象,但是 对象的属性与对象的属性比较(字段比较)BookInfo.objects.filter(bread__gte=F('bcomment') * 2) 把属性放到F对象中,且可以在F对象上使用算数运算(2)Q对象其实就是and , or , not ,当使用&表示逻辑与,|表示逻辑或,必须用Q对象BookI...
2018-05-07 22:13:00 294
原创 django学习-数据库(上)
1.配置Flask安装过 MySqldb,虽然有orm对象关系映射,但是有了sql语句,是安装数据库驱动包—执行orm的sql语句, Flask-MySqldbdjango : pip install PyMySQL但是django原生是使用MySqldb的,所以需要转换from pymysql import install_as_MySQLdbinstall_as_MySQLd...
2018-05-06 12:36:35 298
原创 flask学习-视图和路由(下)
6.异常捕获抛出异常:abort(状态码)捕获异常:装饰器 app.errorhandler(参数) 参数可以是状态码 或者 指定类型的异常ZeroDivisionError(除数为零的异常)@app.errorhandler(404)def page_not_found(error): return "咦~页面不见了~" return想让用户看到的界面7...
2018-05-05 13:13:06 339
原创 flask学习-视图和路由(上)
1.安装Flask框架:sudo pip install flask==0.10.1Flask两个核心Werkzeug(路由模板) 和 Jinja2(模板引擎),安装框架的时候自动安装2.flask框架基本格式2-1.全部开发工作是开发app,所有app.run()2-2.app从哪来,flask类框架提供 app = flask(__name__)2-3.flask所以要导入2...
2018-05-04 23:52:18 325
原创 django学习-路由和视图(下)
6.cookie:设置:HttpResponse.set_cookie(cookie名, value=cookie值, max_age=cookie有效期,单位为秒)读取:request.COOKIES.get('itcast1')session:session可以写入数据库或者本地缓存,或者混合 -> 实际写入redis安装扩展: pip install django-...
2018-05-03 23:19:54 327
原创 django学习-路由和视图(上)
1.工程搭建1-1.安装django :pip install django==1.11.111-2.创建工程:django-admin startproject 工程名称与项目同名的目录,是工程目录。settings.py 是项目的整体配置文件。urls.py 是项目的URL配置文件。wsgi.py 是项目与WSGI兼容的Web服务器入口。manage.py 是项目管理文...
2018-05-03 23:15:34 371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人