wish007

  • 首页
  • 归档
  • 分类
  • 标签

使用asyncio和aiohttp实现异步IO

发表于 2017-02-25   |   分类于 Python   |  

asyncio

asyncio是 Python 3.4 中引入的标准库,直接内置了对异步IO的支持。

asyncio 的编程模型就是一个消息循环,从 asyncio 模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。

下面是来自于 Python 官方文档的例子(请使用 Python3.4 运行),我对它做了一点修改,增加了 2个任务,方便更好地理解 链接>>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import asyncio
@asyncio.coroutine
def compute(x, y):
print("Compute %s + %s ..." % (x, y))
yield from asyncio.sleep(2.0)
return x + y
@asyncio.coroutine
def print_sum(x, y):
result = yield from compute(x, y)
print("%s + %s = %s" % (x, y, result))
loop = asyncio.get_event_loop()
tasks = [print_sum(1, 2), print_sum(3, 4), print_sum(5, 6)]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
# OUTPUT
Compute 3 + 4 ...
Compute 5 + 6 ...
Compute 1 + 2 ...
# 大约 1 秒以后
3 + 4 = 7
5 + 6 = 11
1 + 2 = 3
阅读全文 »

搭建Django博客(8)部署Django博客到VPS

发表于 2017-02-02   |   分类于 Django   |  

本项目采用三层架构部署,Nginx 作为反向代理服务器,WSGI 层使用 uWSGI,Web 应用为 Django;同时,使用 Supervisor 进程守护工具守护 uWSGI 进程。

Nginx + uWSGI + Django + Supervisor

项目地址

GitHub - wish007/django_blog

阅读全文 »

Windows下Python2和Python3共存的设置方法

发表于 2017-02-01   |   分类于 Python   |  

前言

之前在自己电脑上写代码、跑程序用的都是 Python3,基本不会出现必须用 Python2 的情况。然而,最近 clone 了别人的项目下来学习,发现必须用 Py2 才能正常运行,否则不断报错,而且是外部模块报的错误,调试起来实在无力,遂决定在电脑上同时装上 Py2 和Py3,顺便把过程记录下来。

安装Python2&3

  • 分别下载 Python2 和 Python3 安装包,安装顺序没有要求,安装时选上加入系统变量中的Path选项。都安装好后检查系统变量中的Path中有没加入以下内容;没有加入,就手动添加,记得每一项都必须用 ;分隔

    1
    2
    3
    4
    C:\Program Files (x86)\Python27\
    C:\Program Files (x86)\Python27\Scripts #此目录暂时没有,安装完pip后才生成
    C:\Program Files (x86)\Python34\
    C:\Program Files (x86)\Python34\Scripts
阅读全文 »

使用uWSGI和Nginx部署Flask

发表于 2017-01-23   |   分类于 Flask   |  

本项目分为以下三层架构,Web 框架为 Flask,WSGI 层选用 uWSGI ,Web 服务器采用 Nginx。

Web框架、WSGI与Web服务器的三层关系

项目地址

GitHub - wish007/shadowsocks-flask

阅读全文 »

知乎爬虫

发表于 2016-11-05   |   分类于 Python   |  

前言

知乎是一个有趣的网站,当前(2016.11.05) Alexa 全球排名为 112 ,中国排名为 24 ,从趋势看排名仍会上升,相对活跃的用户群为知乎沉淀了大量的数据,是否可以转化这些数据来做一些有趣的东西就看大家的想象力了。

想必很多人都爬取过知乎,知乎的反爬虫机制也越来越强,攻防双方都在不断地升级。这篇文章只涉及到登录知乎,完成后再拓展其他功能。

Python库

  • Requests :HTTP for Humans
  • Pillow :Python 图像处理库
  • Chrome开发者工具:获取 HTTP 通信过程

获取登录参数

打开知乎登录页面,可以看到有手机号和邮箱为账号名 2 种登录方式,尝试输入手机号、邮箱分别从 Network 控制台查看;记得勾上Preserve log,否则会看不到发送账号、密码的请求。

阅读全文 »
12…4
wish007

wish007

19 日志
6 分类
26 标签
GitHub
© 2016 - 2017 wish007
由 Hexo 强力驱动
主题 - NexT.Pisces