python
无敌..
脚踏实地
展开
-
Python标准库汇总介绍
本文将按以下顺序列举各分类下的标准库:原创 2020-12-29 21:58:52 · 179 阅读 · 0 评论 -
有 Bug 不会调试 ? 这篇文章很详细
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码,历史发布的IDEA调试文章还有:Intellij IDEA调试功能使用总结在Intellij IDEA中使用好Debug,主要包括如下内容: Debug开篇 基本用法&...原创 2020-12-29 21:44:49 · 164 阅读 · 0 评论 -
分布式爬虫主要解决什么问题?
1)ip2)带宽3)cpu4)io原创 2018-12-09 09:57:04 · 2174 阅读 · 0 评论 -
写爬虫是用多进程好?还是多线程好? 为什么?
IO密集型代码(文件处理、网络爬虫等),多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。在实际的数据采集过程中,既考虑网速和响应的问题,也需要考虑自身机器的硬件情况,来设置多进程或多线程...转载 2018-12-09 09:57:20 · 5701 阅读 · 0 评论 -
你常用的mysql引擎有哪些?各引擎间有什么区别?
主要 MyISAM 与 InnoDB 两个引擎,其主要区别如下:一、InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了;二、MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用;三、InnoDB 支持外键,MyISAM 不支持;...转载 2018-12-09 09:57:35 · 2173 阅读 · 0 评论 -
scrapy和scrapy-redis有什么区别?为什么选择redis数据库?
1) scrapy是一个Python爬虫框架,爬取效率极高,具有高度定制性,但是不支持分布式。而scrapy-redis一套基于redis数据库、运行在scrapy框架之上的组件,可以让scrapy支持分布式策略,Slaver端共享Master端redis数据库里的item队列、请求队列和请求指纹集合。2) 为什么选择redis数据库,因为redis支持主从同步,而且数据都是缓存在内存中的,所...转载 2018-12-09 09:57:49 · 1308 阅读 · 0 评论 -
创建一个简单tcp服务器需要的流程
1.socket创建一个套接字2.bind绑定ip和port3.listen使套接字变为可以被动链接4.accept等待客户端的链接5.recv/send接收发送数据转载 2018-12-09 09:58:00 · 2446 阅读 · 0 评论 -
post和get区别?
1、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。...转载 2018-12-09 09:58:09 · 428 阅读 · 0 评论 -
cookie 和session 的区别?
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个...转载 2018-12-09 09:59:33 · 88 阅读 · 1 评论 -
如何进行Django单元测试
Django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试。类名为django.test.TestCase,继承于python的unittest.TestCase。from django.test import TestCasefrom myapp.models import Animal class AnimalTestCase(TestCase...转载 2018-12-07 09:53:02 · 643 阅读 · 0 评论 -
Redis 基本类型、 相关方法
Redis 支持五种数据类型: string(字符串) 、 hash(哈希)、list(列表) 、 set(集合) 及 zset(sorted set: 有序集合)。一、 StringString 是 Redis 最为常用的一种数据类型, String 的数据结构为 key/value 类型, String 可以包含任何数据。常用命令: set,get,decr,incr,mget 等...原创 2018-12-06 09:38:01 · 247 阅读 · 0 评论 -
xxss攻击
-- XSS攻击是向网页中注入恶意脚本,用在用户浏览网页时,在用户浏览器中执行恶意脚本的攻击。 -- XSS分类,反射型xss ,存储型xss -- 反射型xss又称为非持久型xss,攻击者通过电子邮件等方式将包含注入脚本的链接发送给受害者, 受害者通过点击链接,执行注入脚本,达到攻击目的。 -- 持久型xss跟反射型的最大不同是攻击脚本将被永久的存放在目标...转载 2018-12-07 10:00:37 · 3989 阅读 · 0 评论 -
列举django中间件的5个方法?
1、process_request : 请求进来时,权限认证 。2、process_view : 路由匹配之后,能够得到视图函数3、process_exception : 异常时执行4、process_template_responseprocess : 模板渲染时执行5、process_response : 请求有响应时执行...原创 2018-12-07 10:00:50 · 4025 阅读 · 0 评论 -
django rest framework框架中的视图都可以继承哪些类?
#class View(object):#class APIView(View): 封装了view,并且重新封装了request,初始化了各种组件#class GenericAPIView(views.APIView):#1.增加了一些属性和方法,如get_queryset,get_serializer#class GenericViewSet(ViewSetMixin, generic...转载 2018-12-07 09:59:11 · 550 阅读 · 0 评论 -
python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
修改HTMLTestrunner的源码修改汇总:第94行,将import StringIO修改成import io第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()第642行,将if not rmap.has_key(cls):修改成if not cls in rmap...原创 2018-12-18 10:18:35 · 205 阅读 · 0 评论 -
有没有一个工具可以帮助查找python的bug和进行静态的代码区别
PyChecker是一个静态分析工具,它不仅能报告源代码中的错误,并且会报告错误类型和复杂度。Pylint是检验模块是否达到代码标准的另一个工具。转载 2018-12-09 09:56:28 · 641 阅读 · 0 评论 -
Python中匹配IP的正则表达式
下面是IPv4的IP正则匹配表达式:import re#简单的匹配给定的字符串是否是ip地址,下面的例子它不是IPv4的地址,但是它满足正则表达式if re.match(r"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$", "272.168,1,1"): print "IP vaild"else: print "IP invaild"#精确的匹配给定...转载 2018-12-09 09:56:18 · 901 阅读 · 0 评论 -
django的MTV与MVC分别代表什么
1.Models:一个抽象层,用来构建和操作你的web应用中的数据,模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。from django.db import models# Create your models here.class BlogsPost(models.Model): title = models...转载 2018-12-09 09:56:06 · 1036 阅读 · 0 评论 -
Redis 有多少个库?
Redis 一个实例下有 16 个库原创 2018-12-06 09:42:09 · 8363 阅读 · 1 评论 -
说一下 Django, MIDDLEWARES 中间件的作用?
中间件是介于 request 与 response 处理之间的一道处理过 程, 相对比较轻量级, 并且在全局上改变 django的输入与输出。原创 2018-12-06 09:45:33 · 539 阅读 · 0 评论 -
nginx uwsgi wsgi 是什么关系
1 、首先nginx 是对外的服务接口,外部浏览器通过url访问nginx,2、nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静态文件请求就直接访问用户给nginx配置的静态文件目录,直接返回用户请求的静态文件,如果不是静态文件,而是一个动态的请求,那么nginx就将请求转发给uwsgi,uwsgi 接收到请求之后将包进行处理,处理成wsgi可以接受的格式...转载 2018-12-06 10:02:54 · 177 阅读 · 0 评论 -
Django请求的生命周期?
#1.wsgi,请求封装后交给web框架 (Flask、Django) #2.中间件,对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session - #3.路由匹配 根据浏览器发送的不同url去匹配不同的视图函数 #4.视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染 - #5.中间件,对响应的数据进行处...转载 2018-12-08 21:48:13 · 510 阅读 · 0 评论 -
简述什么是FBV和CBV?
#FBV和CBV本质是一样的#基于函数的视图叫做FBV,基于类的视图叫做CBV#在python中使用CBV的优点:#1.提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)#2.可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性 ...原创 2018-12-08 21:48:59 · 3656 阅读 · 0 评论 -
如何给CBV的程序添加装饰器?
#引入method_decorator模块#1.直接在类上加装饰器@method_decorator(test,name='dispatch')class Loginview(View): pass#2.直接在处理的函数前加装饰器@method_decorator(test) def post(self,request,*args,**kwargs): pass...原创 2018-12-07 10:02:43 · 525 阅读 · 0 评论 -
简述MVC和MTV
MVC软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller) Model:负责业务对象与数据库的映射(ORM) View:负责与用户的交互 Control:接受用户的输入调用模型和视图完成用户的请求Django框架的MTV设计模式借鉴了MVC框架的思想,三部分为:Model、Template和View Model(模...原创 2018-12-08 21:48:52 · 850 阅读 · 0 评论 -
在浏览器中输入URL后,执行的全部过程。(一次完整的http请求过程)
整个流程如下:域名解析 为了将消息从你的PC上传到服务器 上.需要用到1P协议、ARP协议和0SPF协议 发起TCP的3次握手 建立TCP连接后发起http请求 服务器响应htp请求 浏览器解析htm代码,并请求html代码中的资源(如js、css、图片等) 断开TCP连接 浏览器对页面进行渲染呈现给用户一、域名解析的详细内部过程例如,要查询www.baidu.com...转载 2018-12-09 09:52:44 · 465 阅读 · 0 评论 -
浏览器的一个请求从发送到返回都经历了什么,讲的越详细越好
1、先从网络模型层面:client (浏览器)与 server 通过 http 协议通讯,http 协议属于应用层协议,http 基于 tcp 协议,所以 client 与 server 主要通过 socket 进行通讯;而 tcp 属于传输层协议、如果走 https 还需要会话层 TLS、SSL 等协议; 传输层之下网络层,这里主要是路由协议 OSPF 等进行路由转发之类的。再向下数据链...转载 2018-12-09 09:52:58 · 302 阅读 · 0 评论 -
常见的反爬虫和应对方法?
1).通过Headers反爬虫从用户请求的Headers反爬虫是最常见的反爬虫策略。很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。...原创 2018-12-09 09:53:47 · 446 阅读 · 0 评论 -
跨域请求问题django怎么解决的
启用中间件post请求验证码表单中添加{%csrf_token%}标签原创 2018-12-09 09:54:11 · 381 阅读 · 0 评论 -
python 中 yield 的用法?
yield 简单说来就是一个生成器,这样函数它记住上次返 简单说来就是一个生成器,这样函数它记住上次返 简单说来就是一个生成器,这样函数它记住上次返 简单说来就是一个生成器,这样函数它记住上次返 回时在函数体中的位置。对生成器第 二次(或n 次)调用跳转至该函 次)调用跳转至该函 数。...原创 2018-12-09 09:54:25 · 128 阅读 · 0 评论 -
什么是线程安全?
线程安全是在多线程的环境下,能够保证多个线程同时执行时程序依旧运行正确, 而且要保证对于共享的数据可以由多个线程存取,但是同一时刻只能有一个线程进行存取。多线程环境下解决资源竞争问题的办法是加锁来保证存取操作的唯一性。...原创 2018-12-09 09:54:37 · 94 阅读 · 0 评论 -
通过Nginx部署Django(基于ubuntu)
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求。nginx把所有静态请求自己来处理(这是NGINX的强项)。然后,NGINX将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。 可见,uwsg...转载 2018-12-09 09:55:36 · 199 阅读 · 0 评论 -
MySQL、Redis 和 MongoDB 的优缺点
MySQLMySQL 是一个关系型数据库。MySQL在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统, 关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 ...转载 2018-12-06 09:35:04 · 287 阅读 · 0 评论