Skip to content

Instantly share code, notes, and snippets.

@davidjmerritt
Last active February 2, 2016 19:52
Show Gist options
  • Save davidjmerritt/7f02be45d98eddd69bcc to your computer and use it in GitHub Desktop.
Save davidjmerritt/7f02be45d98eddd69bcc to your computer and use it in GitHub Desktop.
Basic example http server using bottle.py
from bottle import route, run, response, request
import sys, os, time, json
# CONVERT DICTONARY TO JSON
def dict_to_json(dict_data,return_type='pretty'):
if return_type == 'pretty':
return json.dumps(dict_data, sort_keys=True,indent=4, separators=(',', ': '))
elif return_type == 'raw':
return json.dumps(dict_data)
# ROUTE THAT WILL RESOLVE AT "/" or "/api" AND RETURN PLAIN TEXT "Hellow Workld!"
@route(['/','/api'], method='GET')
def index():
return "Hello World!"
# ROUTE WITH A VARIABLE BUILT INTO THE ROUTE THAT WILL RETURN THAT VARIABLE
@route('/api/<variable>', method='GET')
def index(variable):
# SET THE HEADER TO JSON SO THAT THE RECEIVING END POINT WILL INTERPRET IT CORRECTLY
response.content_type = 'application/json'
# FORMAT RESULTS OF QUERY STRING PARSE INTO A DICT
results = {
'variable': variable
}
# USE MY dict_to_json METHOD TO COVER VERT THE DICT TO JSON
return dict_to_json(results)
@route('/api/query', method='GET')
def index():
# SET THE HEADER TO JSON SO THAT THE RECEIVING END POINT WILL INTERPRET IT CORRECTLY
response.content_type = 'application/json'
# PARSE THE QUERY STRING
if 'var1' in request.query:
variable1 = request.query['var1']
else:
variable1 = False
if 'var2' in request.query:
variable2 = request.query['var2']
else:
variable2 = False
# FORMAT RESULTS OF QUERY STRING PARSE INTO A DICT
results = {
"var1": variable1,
"var2": variable2
}
# USE MY dict_to_json METHOD TO COVER VERT THE DICT TO JSON
return dict_to_json(results)
# RUN SERVER IN DEV MODE
run(host='0.0.0.0', port=8181, debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment