示例#1
0
def pdf():
    """
    Демо-версия PDF отчеа, открывается прямо в браузере,
    это удобнее, чем каждый раз скачивать
    """
    render_pdf(sample_payload_obj, './output.pdf')
    upload_file('./output.pdf')

    return send_file('./output.pdf', attachment_filename='output.pdf')
示例#2
0
def api():
    """ Продакшен-ручка. Принимает данные в JSON, возвращает ссылку в JSON """
    payload = request.json
    try:
        render_pdf(payload, './output.pdf')
        response_url = upload_file('./output.pdf')
    except Exception as e:
        return {'error': str(e)}, 500

    return {'url': response_url}
示例#3
0
def api():
    """ Продакшен-ручка. Принимает данные в JSON, возвращает ссылку в JSON """
    payload = request.json
    try:
        render_pdf(payload, "./output.pdf")
        response_url = upload_file("./output.pdf")
    except Exception as e:
        app.log_exception(exc_info=e)
        return {"error": str(e)}, 500

    return {"url": response_url}
示例#4
0
def help():
    """
    Форма генерации счета для дебага. Принимает POST-запрос с пейлоадом, отдает PDF
    """
    if request.method == 'GET':
        payload_str = json.dumps(sample_payload_obj,
                                 indent=4,
                                 ensure_ascii=False)
        return render_template('sample_payload.html',
                               sample_payload_obj=payload_str)

    payload = json.loads(request.form['payload'])
    render_pdf(payload, './output.pdf')
    response_url = upload_file('./output.pdf')

    return redirect(response_url)