pvl/web/response.py
author Tero Marttila <terom@paivola.fi>
Sun, 07 Sep 2014 14:21:56 +0300
changeset 424 e77e967d59b0
parent 197 9f18b11647fb
permissions -rw-r--r--
hgignore: use glob; ignore snmp mibs
197
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
from werkzeug.wrappers import Response
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
from werkzeug.exceptions import (
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
        HTTPException, 
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
        BadRequest,         # 400
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
        NotFound,           # 404
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
)
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
from werkzeug.utils import redirect
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
import json as _json
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
def html (tag, **opts) :
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    """
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
        Return text/html response for given pvl.web.html
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
    """
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
    return Response(unicode(tag), mimetype='text/html', **opts)
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
def json (data, **opts) :
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
    """
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
        Return text/json response for given object.
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
    """
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
    return Response(_json.dumps(data), mimetype='text/json', **opts)
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
def image (file, type='png') :
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
    """
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
        Return image/{type} response for given file-like object.
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
    """
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
 
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
    # respond with file wrapper
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
    return Response(file, mimetype='image/{type}'.format(type=type), direct_passthrough=True)        
9f18b11647fb pvl.web.response: html/json/image response encodings
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33