sanic/examples/try_everything.py

105 lines
2.5 KiB
Python
Raw Normal View History

2017-02-16 21:53:31 +00:00
import os
2016-10-09 23:28:31 +01:00
from sanic import Sanic
from sanic.log import log
2017-04-11 21:34:55 +01:00
from sanic import response
2016-10-09 23:28:31 +01:00
from sanic.exceptions import ServerError
app = Sanic(__name__)
2016-10-09 23:28:31 +01:00
@app.route("/")
async def test_async(request):
2017-04-11 21:34:55 +01:00
return response.json({"test": True})
2016-10-09 23:28:31 +01:00
@app.route("/sync", methods=['GET', 'POST'])
def test_sync(request):
2017-04-11 21:34:55 +01:00
return response.json({"test": True})
2016-10-09 23:28:31 +01:00
2017-08-22 09:40:42 +01:00
@app.route("/dynamic/<name>/<i:int>")
def test_params(request, name, i):
return response.text("yeehaww {} {}".format(name, i))
2016-10-09 23:28:31 +01:00
2016-10-09 23:28:31 +01:00
@app.route("/exception")
def exception(request):
raise ServerError("It's dead jim")
@app.route("/await")
async def test_await(request):
import asyncio
await asyncio.sleep(5)
2017-04-11 21:34:55 +01:00
return response.text("I'm feeling sleepy")
2017-02-16 21:53:31 +00:00
@app.route("/file")
async def test_file(request):
2017-04-11 21:34:55 +01:00
return await response.file(os.path.abspath("setup.py"))
2017-02-16 21:53:31 +00:00
@app.route("/file_stream")
async def test_file_stream(request):
return await response.file_stream(os.path.abspath("setup.py"),
chunk_size=1024)
2016-10-09 23:28:31 +01:00
# ----------------------------------------------- #
# Exceptions
# ----------------------------------------------- #
2016-10-09 23:28:31 +01:00
@app.exception(ServerError)
async def test(request, exception):
return response.json({"exception": "{}".format(exception), "status": exception.status_code},
status=exception.status_code)
2016-10-09 23:28:31 +01:00
# ----------------------------------------------- #
# Read from request
# ----------------------------------------------- #
@app.route("/json")
def post_json(request):
2017-04-11 21:34:55 +01:00
return response.json({"received": True, "message": request.json})
2016-10-09 23:28:31 +01:00
@app.route("/form")
def post_json(request):
2017-04-11 21:34:55 +01:00
return response.json({"received": True, "form_data": request.form, "test": request.form.get('test')})
2016-10-09 23:28:31 +01:00
@app.route("/query_string")
def query_string(request):
return response.json({"parsed": True, "args": request.args, "url": request.url,
"query_string": request.query_string})
2016-10-09 23:28:31 +01:00
# ----------------------------------------------- #
# Run Server
# ----------------------------------------------- #
2017-03-12 14:42:34 +00:00
@app.listener('before_server_start')
def before_start(app, loop):
log.info("SERVER STARTING")
@app.listener('after_server_start')
def after_start(app, loop):
2016-10-09 23:28:31 +01:00
log.info("OH OH OH OH OHHHHHHHH")
@app.listener('before_server_stop')
def before_stop(app, loop):
2017-03-12 14:42:34 +00:00
log.info("SERVER STOPPING")
@app.listener('after_server_stop')
def after_stop(app, loop):
2016-10-09 23:28:31 +01:00
log.info("TRIED EVERYTHING")
2017-03-12 14:42:34 +00:00
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8000, debug=True)