![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
市民王先生w
这个作者很懒,什么都没留下…
展开
-
python装饰器
开放–封闭原则:封闭:以实现的功能代码不应该被修改开放:对现有功能的扩展开放装饰器本质上是一个函数,他可以让其他函数在不需要做任何代码处理的前提下增加额外的功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。...转载 2019-11-03 11:46:06 · 125 阅读 · 0 评论 -
Python中一些不为人知的基础技巧总结
本文主要给大家总结介绍了关于Python的一些基础技巧,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。1.startswith()和endswith()参数可以是元组当检测字符串开头或结尾时,如果有多个检测值,可以用元组作为startswith()和endswith()参数:2.enumerate()设置start参数做为索引起始值当用enumerate()迭代同时要得...原创 2019-11-02 21:41:10 · 187 阅读 · 0 评论 -
scrapy工作流程
一:scrapy 工作原理介绍:千言万语,不如一张图来的清晰:解释说明:1、从优先级队列中获取request对象,交给engine2、engine将request对象交给下载器下载,期间会通过downloadmiddleware的process_request方法3、下载器完成下载,获得response对象,将该对象交给engine,期间会经过downloadmiddleware的pr...原创 2019-11-02 19:56:46 · 303 阅读 · 0 评论 -
Python的线程、进程和协程
进程:一个进程就是一个正在运行的程序,它是计CPU分配资源的最小单位。每个进程都有自己独立的内存空间。能同时执行的进程数最多不超过内核数,也就是每个内核同一时刻只能执行一个进程。那么多进程就是能【同时】运行多个进程(比如同时听音乐和写代码),这里的【同时】可以指CPU通过极快地在进程间来回切换来实现,所以即使是单核CPU也能运行多进程。线程:线程是CPU执行的基本单元。线程存在于进程中。一个...原创 2019-11-01 17:09:29 · 94 阅读 · 0 评论 -
python-scrapy的Pipeline中sql的万能插入语句
def process_item(self, item, spider): keys, values = zip(*item.items()) sql = "INSERT INTO `{}` ({}) VALUES ({}) ON DUPLICATE KEY UPDATE {}".format( self.table_name, ...原创 2019-10-28 15:20:33 · 420 阅读 · 0 评论 -
python中含__init__.py 的文件的作用
1、init.py是Python中package的标识init.py 文件的一个主要作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件2、批量引入(定义__all__用来模糊导入)我们在python中导入一个包时,实际上是导入了它的__init__.py文件,这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要...原创 2019-10-28 00:44:35 · 274 阅读 · 0 评论 -
INFO [alembic.env] No changes in schema detected. 那些年踩过的坑。
刚在写flask项目一直遇到db init后一起无法db migrate我的flask项目拆分结构是:db的加载是在init_ext()里面这时编写我的modelinit.py下的这时models.py下的__init__.py分析了各种原因,最终发现原来是我们之写了Model,这个时候app是不知道我们的模型在哪,所以必须在其他地方引用一下。可以在api的位置加上。...原创 2019-10-28 00:30:15 · 1012 阅读 · 0 评论 -
爬虫笔记05-爬虫小练习多进程redis分布式
上篇写到多进程是通过queue消息队列来完成,这次将links链接存入redis来实现分布式。实现思路:1.循环links时将link链接存入redis数据库。2.开启多线程从redis中读取每条链接import sysimport timeimport requestsfrom lxml import etreeimport threadingimport signalimp...原创 2019-10-27 12:56:22 · 129 阅读 · 0 评论 -
爬虫笔记04-爬虫小练习多进程改进版
上篇写了一个单进程爬224个页面需要用450秒的时间,这次用下python的多进程的方式去改写一下,尽管大家都说python的多进程是鸡肋,但存在就是合理,多进程思路也很简单。1,创建多个Queue队列,在循环links链接时将每个link链接put进queue列表里。2.开启多个线程同时将每个queue join进每个线程,当线程暂用时会进入阻塞状态3.当queue队列长度为0时,向进程...原创 2019-10-27 12:05:26 · 114 阅读 · 0 评论 -
爬虫笔记03-爬虫小练习
爬个小网站:http://www.qianmu.org/(迁木网)网站里主要是国外的大学的一些信息请求入门页url是:http://www.qianmu.org/2019USNEWS%E4%B8%96%E7%95%8C%E5%A4%A7%E5%AD%A6%E6%8E%92%E5%90%8D%E7%BE%8E%E5%9B%BD%E5%9B%BD%E5%86%85%E6%8E%92%E5%90%...原创 2019-10-27 00:50:51 · 281 阅读 · 0 评论 -
爬虫笔记02--xpath常用语法
xpath是一门在XML文档中查找信息的语言概念节点(Node) 元素、属性、文本、命名空间、文档(根)节点节点关系 父(parent) 子 (Children) 同胞 (Sibling) 先辈 (Ancestor) 后代 (Descendant)xpath语法表达式描述nodename选取此节点的所有子节点//从任意子节点中选取...原创 2019-10-26 13:26:39 · 208 阅读 · 0 评论 -
爬虫笔记01--curl,wget,urllib,requests简单使用方法
苦于知识学了又忘,忘了有学,好记性不如烂笔头吧。记录一下。curl指令和wget命名没有安装centos版本可以用下面的命令。yum install curlyum install wget注意:安装的时候可能会遇到报错,有可能是openssl没装,yum install opensslyum install openssl-dev如果是ubuntu系统把yum改成apt即可。...原创 2019-10-25 21:45:37 · 748 阅读 · 0 评论 -
Python学习笔记-flask配置成django文件目录风格--2
在env的python环境退出,换成mydjango。deactivateworkon mydjango然后通过django指令新建一个HelloDjango项目和app应用django-admin startproject HelloDjangocd HelloDjangopython manage.py startapp apptree HelloDjango我们可以看到...原创 2019-10-22 16:16:03 · 293 阅读 · 0 评论 -
Python学习笔记-flask配置成django文件目录风格--1
准备vm的centos7 配置ip192.168.3.88 安装ssh用xshell连接新建python虚拟环境个人喜欢直接把每个py环境包跟着项目一起.所以先在根目录新建个项目文件夹把mkdir py_flask配置别名进入虚拟环境。alias py_flask='source /py_flask/env/bin/activate'下次从服务器指令进入虚拟环境直接输入py_f...原创 2019-10-22 14:30:52 · 261 阅读 · 0 评论 -
Python学习日记-简单小爬虫
Python学习日记-简单小爬虫简单小爬虫最近一直在学习python,学了又忘,忘了又学, 好记性不如烂笔头。索性记录下来,方便以后翻看。一、思路:找一个网页通过python的urllib包获取源代码,在通过re模块和正则表达式匹配需要的字段保存如mysql数据库二、实现:由于不知爬那个网页,突然浏览器弹出H网链接,那就爬它吧,嘻嘻嘻:https://www.gzkd888.com/280...原创 2019-09-21 16:59:13 · 235 阅读 · 0 评论