def pdf(): """ Демо-версия PDF отчеа, открывается прямо в браузере, это удобнее, чем каждый раз скачивать """ render_pdf(sample_payload_obj, './output.pdf') upload_file('./output.pdf') return send_file('./output.pdf', attachment_filename='output.pdf')
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}
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}
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)