搭建一个服务器,创建三个路由
flask1.py
from flask import Flask
import time
app=Flask(__name__)
@app.route('/bobo')
def index_bobo():
time.sleep(2)
return 'Hello bobo'
@app.route('/jay')
def index_jay():
time.sleep(2)
return 'Hello jay'
@app.route('/tom')
def index_tom():
time.sleep(2)
return 'Hello tom'
if __name__=='__main__':
app.run(threaded=True)
* Serving Flask app "flask1" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
import asyncio
import time
import requests
stat=time.time()
urls=[
'http://127.0.0.1:5000/bobo',
'http://127.0.0.1:5000/jay',
'http://127.0.0.1:5000/tom'
]
async def get_page(url):
print('正在下载',url)
#requests.get是基于同步,
# 必须使用基于异步的网络请求模块进行指定url的请求发送
#aiohttp:基于异步网络请求的模块
response=requests.get(url=url)
print('下载完毕',response.text)
tasks=[]
for url in urls:
c=get_page(url)
task=asyncio.ensure_future(c)
tasks.append(task)
loop=asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
end=time.time()
print('总耗时',end-stat)
正在下载 http://127.0.0.1:5000/bobo
下载完毕 Hello bobo
正在下载 http://127.0.0.1:5000/jay
下载完毕 Hello jay
正在下载 http://127.0.0.1:5000/tom
下载完毕 Hello tom
总耗时 6.043761253356934