diff --git a/app.py b/app.py new file mode 100644 index 0000000..5d0b32a --- /dev/null +++ b/app.py @@ -0,0 +1,33 @@ +import requests +from flask import Flask, render_template, jsonify, make_response +from weasyprint import HTML + +app = Flask(__name__) + +@app.route('/report') +def report(): + # Prepare graph data + graph_data = [ + { + 'x': [1, 2, 3], + 'y': [10, 20, 30], + 'type': 'scatter' + } + ] + return render_template('report.html', graph_data=jsonify(graph_data)) + +def get_data(): + response = requests.get('https://api.example.com/data') + return response.json() + +@app.route('/download-pdf') +def download_pdf(): + html = render_template('report.html') + pdf = HTML(string=html).write_pdf() + response = make_response(pdf) + response.headers['Content-Type'] = 'application/pdf' + response.headers['Content-Disposition'] = 'inline; filename=report.pdf' + return response + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3744fe6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +flask +requests +weasyprint +plotly \ No newline at end of file diff --git a/templates/report.html b/templates/report.html new file mode 100644 index 0000000..6ceaf04 --- /dev/null +++ b/templates/report.html @@ -0,0 +1,29 @@ +
+ + + + + + + + + + + + {% for row in table_data %} + + + + + {% endfor %} + +
Header 1Header 2
{{ row[0] }}{{ row[1] }}
+ +
+ + + +
\ No newline at end of file