Skip to content

Instantly share code, notes, and snippets.

@mpelos
Last active September 19, 2019 15:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mpelos/b4e9898741af8cf550fd3f74ed7bc4b7 to your computer and use it in GitHub Desktop.
Save mpelos/b4e9898741af8cf550fd3f74ed7bc4b7 to your computer and use it in GitHub Desktop.
Python Flask routing on Google Cloud Functions with support for flask error handlers
import sys
import requests
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=["GET"])
def index():
return "Index"
@app.route('/loko/<int:some_number>', methods=["POST"])
def loko(some_number):
return str(some_number)
# Google handler
def handler(request):
environ = request.environ
environ['PATH_INFO'] = environ['PATH_INFO'].replace('/execute', '')
urls = app.url_map.bind_to_environ(environ)
try:
endpoint, args = urls.match()
return getattr(sys.modules[__name__], endpoint)(**args)
except HTTPException as e:
handler = app.error_handler_spec.get(None, {}).get(e.code, {}).get(type(e))
if (handler): return handler(e)
raise e
if __name__ == '__main__':
app.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment