예제 #1
0
    $ curl -iH "Accept: text/plain" localhost:8080/x
    ...
    Content-Type: text/plain
    ...
    Hello, x!

"""
from flask import Flask
try:
    import simplejson as json
except ImportError:
    import json
import mimerender

mimerender = mimerender.FlaskMimeRender()

render_xml = lambda message: '<message>%s</message>'%message
render_json = lambda **args: json.dumps(args)
render_html = lambda message: '<html><body>%s</body></html>'%message
render_txt = lambda message: message

app = Flask(__name__)

@app.route('/')
@app.route('/<name>')
@mimerender(
    default = 'html',
    html = render_html,
    xml  = render_xml,
    json = render_json,
예제 #2
0
import mimerender

mimerender.register_mime('pdf', ('application/pdf', ))
mimerender = mimerender.FlaskMimeRender(global_charset='UTF-8')


def render_pdf(html):
    from xhtml2pdf import pisa
    from cStringIO import StringIO
    pdf = StringIO()
    pisa.CreatePDF(StringIO(html.encode('utf-8')), pdf)
    resp = pdf.getvalue()
    pdf.close()
    return resp


@app.route('/invoice/<invoice_id>/', methods=['GET'])
@login_required
@mimerender(default='html',
            html=lambda html: html,
            pdf=render_pdf,
            override_input_key='format')
def view_invoice(org_id, invoice_id):
    html = render_template('invoice.html', id=invoice_id)
    return {'html': html}  # mimerender requires a dict