python
!d10t
这个作者很懒,什么都没留下…
展开
-
Scrapy 关于Request对象
Request对象由start_requests()调用make_requests_from_url() 生成Request对象,要修改最初爬取某个网站的Request对象,可以重写start_requests()方法(但重写必须返回一个可迭代对象,一般为生成器,此方法只会在spider启动爬取并且未制定URL时调用一次)。例如,如果需要在启动时以POST登陆某个网站,可以写成:class My...转载 2019-03-06 15:49:50 · 359 阅读 · 0 评论 -
python发送邮件
https://www.cnblogs.com/visec479/p/4142818.html转载 2019-06-10 14:13:36 · 107 阅读 · 0 评论 -
python使用requests 上传文件为中文名时上传失败
https://www.cnblogs.com/yangyangchunchun/p/9351966.html浏览器可以上传成功,但是requests不能上传成功。抓包发现上传时参数有差异:浏览器: filename = filenamerequests: filename* = filename解决办法:python 的requests使用了urllib3中的方法。在urllib3下的f...转载 2019-06-09 16:55:22 · 1253 阅读 · 0 评论 -
python torndb
最近接触的项目中数据库操作使用python 的 torndb库torndb 基于 pymysql遇到的问题:pymysql 创建Connection对象时,autocommit 参数默认为False, 所以可以使用try catch 的结构,当数据操作发生错误时进行回滚 。torndb 创建Connection对象时,调用了torndb中的 reconnect函数,这个函数在首先关闭现有的...原创 2019-05-29 20:31:00 · 362 阅读 · 0 评论 -
python lazy_object_proxy
把一个耗时的函数放到lazy_object_proxy.Proxy对象中,函数只在第一次调用时进行计算,后面需要调用时可以直接返回结果参考:https://www.helplib.com/GitHub/article_118716 import lazy_object_proxy def expensive_func(): from time import sleep ...转载 2019-05-24 10:46:33 · 959 阅读 · 0 评论 -
python 缓存装饰器
参考https://www.cnblogs.com/faithfu/p/10365868.htmlcached_property缓存装饰器class cached_property(object): """ Decorator that converts a method with a single self argument into a property cache...转载 2019-05-23 19:03:18 · 827 阅读 · 0 评论 -
python 多线程的同步问题
多线程因为程序执行的先后顺序无法由人来控制,由cpu完成,所以多线程可能会导致共享的数据出错,需要把多线程的事务进行原子化.可以使用三种方法:1. 互斥锁 2. 读写锁 3. 条件变量(需要了解)线程安全的Queue.Queue 也是因为加了锁才安全的参考:http://www.cnblogs.com/vamei/archive/2012/10/09/2715393.html...转载 2019-05-06 23:50:46 · 286 阅读 · 0 评论 -
python 多进程
多进程相比多线程,切换时消耗更多的资源和时间, 但是可以使用多核cpu, 多线程虽然消耗少,但是只能使用多核cpu的一个核心,同时使用多线程+多进程提高程序的效率使用多进程的库multiprocessing, 进程库Pool.apply 是阻塞式的, Pool.apply_async是非阻塞式. Pool后面可以跟一个表示进程个数的int类型,一般默认值为CPU核心个数.如果多进程执行时,需...转载 2019-05-06 23:44:21 · 92 阅读 · 0 评论 -
使用pymysql登录mysql提示access denied
新版mysql使用的caching_sha2_password认证方式,换成mysql_native_password就可以。步骤是在cmd命令行连接mysql,然后输入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';参考自:https://blog.csdn.net/dongweio...转载 2019-04-15 18:08:26 · 902 阅读 · 2 评论 -
django给form表单中的Input的label添加样式
参考https://blog.51cto.com/steed/2120211在APP下,创建templatetags目录,目录名字很重要不能错。创建任意 .py 文件,这里文件名随意,比如:myfun.py。文件里创建一个template.Library()对象,名字是register。这里的对象名字必须是register。然后写自己的函数,但是都用@register.simple_tag...转载 2019-04-11 20:57:43 · 1686 阅读 · 0 评论 -
Python中的GIL
GIL=Global Interpreter Lock,全局解释器锁,GIL不是Python的特性,而是Python解释器的特性,GIL的存在是因为多数的python安装程序使用的编译器都是cpython, GIL 是cpython为了解决多核多线程程序中数据和状态同步问题而提出来的,当这个概念被大多数程序所接受之后,人们才发现它是低效的,因为同一时刻只能有一个线程处于运行状态,即使是在多核处理...转载 2019-04-08 14:49:16 · 116 阅读 · 0 评论 -
Python多个装饰器的执行顺序
看了好多相关文章,也有些有错误,还是自己记录一下吧.def decrator_a(func): print("enter decrator_a") def inner_a(*args,**kwargs): print("enter inner_a") ret = func(*args,**kwargs) print("leaving...原创 2019-04-08 00:15:52 · 2054 阅读 · 1 评论 -
记录两个python中的单例模式实现方式
单例模式实现的方法有很多,这里只记录两个,(1)一个是在类中实现__new__()方法,创建实例时判断是否存在_instance变量,不存在则创建, 最后返回实例,(2)另一个是单独保存到一个模块当中,并创建一个实例,每次访问时通过import来访问.参考链接:https://www.cnblogs.com/wuliwawa/p/9655670.html其他方法可以实现单例模式,但都不是绝...转载 2019-04-07 21:47:10 · 118 阅读 · 0 评论 -
django 上传文件(图片)
使用<input type="file" name="file"> 上传文件, 而且需要注意form中必须设置enctype="multipart/form-data"才能上传文件,否则上传的内容为None <form name="form1" method="POST" action="/chg_profile/" enctype="multipart/form-...原创 2019-03-29 17:09:52 · 364 阅读 · 0 评论 -
python 中单/双下划线的含义
https://www.jb51.net/article/129534.htm使用单下划线(_one_underline)开头表示方法不是API的一部分,不要直接访问(虽然语法上访问也没有什么问题)。使用双下划线开头(__two_underlines)开头表示子类不能覆写该方法。除非你真的知道你在干什么,否则不要使用这种方式。当你想让自己定义的对象也可以像Python内置的对象一样使用Py...转载 2019-06-10 15:13:39 · 177 阅读 · 0 评论