随笔分类 -  python基础记录

摘要:使用celery异步发送邮件,页面可以不需等发送邮件成功才加载,celery都工作原理如下图: 邮件发送的过程: 1. Django网站先发送到smtp服务器 2. smtp服务器再把邮件发送方到目的邮箱 在如上的情况下,假定Django网站发送邮件到smtp耗时是5s,那么用户在表单中输入信息之后 阅读全文
posted @ 2019-12-23 01:32 智、心 阅读(519) 评论(3) 推荐(0)
摘要:1、注册和注册处理 注册和注册处理使用了类视图去处理,使用itsdangerous去生成用户token,: 2、注册激活用户 用户激活成功,返回到登陆页面,如果激活链接过期,重新又生成链接时激活(之后更新写) 阅读全文
posted @ 2019-12-10 01:05 智、心 阅读(1092) 评论(0) 推荐(0)
摘要:` [https://www.cnblogs.com/alex3714/articles/6351797.html]( ) 阅读全文
posted @ 2019-11-06 23:18 智、心 阅读(179) 评论(0) 推荐(0)
摘要:Celery介绍和基本使用 Celery是一个基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用celery,举几个实例场景中可用的例子: 1. 你想对100台机器执行一条批量命令,可能会花很长时间,但你不想让你的程序 阅读全文
posted @ 2019-11-05 23:21 智、心 阅读(760) 评论(0) 推荐(0)
摘要:版本库创建 什么是版本库呢,版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原"。创建一个版本库非常简单,首先选择一个合适的地方,创建一个空目录: 瞬 阅读全文
posted @ 2019-11-04 00:59 智、心 阅读(130) 评论(0) 推荐(0)
摘要:RPC RPC既做消费者也做生产者 rpc_client.py rpc_server.py 阅读全文
posted @ 2019-11-02 17:04 智、心 阅读(177) 评论(0) 推荐(0)
摘要:Topics 在之前的教程中我们改进了日志系统,然而使用fanout exchange 仅是可以广播,我们使用direct选择的接收日志。即使使用direct exchange改善我们的系统,它仍然是有限的,不能基于多个条件进行路由。 在我们的系统中我们想要订阅不仅是严重程度的日志,而且还基于发出日 阅读全文
posted @ 2019-11-02 17:03 智、心 阅读(140) 评论(0) 推荐(0)
摘要:Routing 此案例中,我们会尝试更多的特性,例如,仅仅将错误信息传递到Log文件中(节省空间),同时仍能将所有信息打印到控制台上 Bindings有一个额外的参数routing_key,为了防止和basic_publish参数混淆,我们将它叫做binding_key.这是我们怎么去创建一个bin 阅读全文
posted @ 2019-10-31 00:23 智、心 阅读(580) 评论(0) 推荐(0)
摘要:在之前的课程中,默认是一个任务只交付给一个消费者进行处理,在本案例中,一个任务会交给多个消费者去处理(即publish/subscribe模式) 在这一项中,我们创建一个工作队列,用于在多个工作者之间分配耗时的任务。 为了说明这个模式,我们将构建一个简单的日志记录系统。它将由两个程序组成——第一个将 阅读全文
posted @ 2019-10-29 23:52 智、心 阅读(271) 评论(0) 推荐(0)
摘要:Work queues 接下来是part2 在这一项中,我们创建一个工作队列,用于在多个工作者之间分配耗时的任务。 Work Queues的主要思想是,避免立即执行资源密集的任务而不得不等待其执行完成。我们将任务封装为消息并将其发送到队列中,在后台运行的一个工作进程将会弹出任务并最终执行该任务,当你 阅读全文
posted @ 2019-10-24 01:40 智、心 阅读(175) 评论(0) 推荐(0)
摘要:一、RabbitMQ消息队列介绍 RabbitMQ也是消息队列,那RabbitMQ和之前的Python的Queue有什么区别呢: py消息队列 1. 线程queue(同一进程下线程之间进行交互) 2. 进程Queue(父子进程进行交互或者同属于同一进程下的多个子进程进行交互) 类似于这种公共的中间有 阅读全文
posted @ 2019-10-23 02:38 智、心 阅读(225) 评论(0) 推荐(0)
摘要:1、操作模式 redis py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis py 2、连接池 redis py使用connecti 阅读全文
posted @ 2019-10-20 19:38 智、心 阅读(2155) 评论(0) 推荐(0)
摘要:Hash操作 hash表现形式上有些像python中的dict,可以存储一组关联性较强的数据,redis中Hash在内存中的存储格式如下图: 1、hset(name,key,value) 2、hmset(name,mapping) 3、hget(name,key) 4、hmget(name,keys 阅读全文
posted @ 2019-10-20 17:25 智、心 阅读(2459) 评论(0) 推荐(0)
摘要:缓存数据库介绍 redis操作 1、缓存数据介绍 NoSQL(NoSQL = Not Only SQL),意即"不仅仅是SQL",泛指非关系型的数据库,随着互联网web的兴起,传统的关系数据库在应付web网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得得力不从心,暴露了很多难 阅读全文
posted @ 2019-10-18 01:31 智、心 阅读(398) 评论(0) 推荐(0)
摘要:参考:https://www.cnblogs.com/wupeiqi/articles/6229292.html 上面使用HtmlXPathSelector,python3.7没有这个模块,我就直接使用Selector了 ImportError: cannot import name 'HtmlXP 阅读全文
posted @ 2019-10-16 01:07 智、心 阅读(650) 评论(0) 推荐(0)
摘要:告诉我我不是一个人被安装scrapy坑死 安装scrapy python3.7 ,win10 1、下载wheel,twisted这两个我是直接用pycharm的setting下载的 下载pywin32 1、我使用pycharm安装pywin32不起作用只能去官网下载与python3.7对应的版本,下 阅读全文
posted @ 2019-10-16 00:54 智、心 阅读(620) 评论(0) 推荐(0)
摘要:tornado 异步IO的基本简单流程原理 上面的异步IO有一个缺陷就是没有保存获取响应结果的数据,可以新建一个类来解决这个问题 阅读全文
posted @ 2019-10-12 00:34 智、心 阅读(451) 评论(0) 推荐(0)
摘要:对于多线程和多进程的缺点是在IO阻塞时会造成线程和进程的浪费,所以异步IO会是首选,有下面几种: 一、异步IO 1、asyncio + aiohttp + requests 2、gevent + requests +grequests 3、twisted 4、tornado 5、asyncio 6、 阅读全文
posted @ 2019-10-11 21:59 智、心 阅读(591) 评论(0) 推荐(0)
摘要:asyncio异步IO,能够异步网络操作,并发,协程 1、asyncio的关键字说明 event_loop事件循环:程序开启一个无限循环,把一些函数注册到事件循环上,当满足事件发生的时候,调用相应的协程函数 coroutine协程:协程对象,指一个使用async关键字定义的函数,它的调用不会立即执行 阅读全文
posted @ 2019-10-10 00:19 智、心 阅读(1811) 评论(0) 推荐(0)
摘要:ProcessPoolExecutor线程池 1、为什么需要线程池呢,如果创建了20个线程,而同时只允许3个线程在运行,但是20个线程都需要创建和销毁,线程的创建是需要消耗系统资源的,所以线程池的思想就是:每个线程各分配一个任务,剩下的任务皮队等待,当某个线程完成了任务的时候,排队任务就可以安排给这 阅读全文
posted @ 2019-09-28 00:46 智、心 阅读(10435) 评论(1) 推荐(0)