Merge pull request #119 from jackfischer/master
Add example with async http requests (Issue #96)
This commit is contained in:
commit
47b417db28
33
examples/aiohttp_example.py
Normal file
33
examples/aiohttp_example.py
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
from sanic import Sanic
|
||||||
|
from sanic.response import json
|
||||||
|
|
||||||
|
import uvloop
|
||||||
|
import aiohttp
|
||||||
|
|
||||||
|
#Create an event loop manually so that we can use it for both sanic & aiohttp
|
||||||
|
loop = uvloop.new_event_loop()
|
||||||
|
|
||||||
|
app = Sanic(__name__)
|
||||||
|
|
||||||
|
async def fetch(session, url):
|
||||||
|
"""
|
||||||
|
Use session object to perform 'get' request on url
|
||||||
|
"""
|
||||||
|
async with session.get(url) as response:
|
||||||
|
return await response.json()
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
async def test(request):
|
||||||
|
"""
|
||||||
|
Download and serve example JSON
|
||||||
|
"""
|
||||||
|
url = "https://api.github.com/repos/channelcat/sanic"
|
||||||
|
|
||||||
|
async with aiohttp.ClientSession(loop=loop) as session:
|
||||||
|
response = await fetch(session, url)
|
||||||
|
return json(response)
|
||||||
|
|
||||||
|
|
||||||
|
app.run(host="0.0.0.0", port=8000, loop=loop)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user